IE 7和8中的可变更改事件

时间:2013-07-20 13:51:05

标签: javascript internet-explorer-8 internet-explorer-7 contenteditable

就像this other question一样,我希望能够在用户更改可信任的DIV的内容时调用函数。但是,我想支持IE 7-10。 IE 7和8 do not support'输入'事件。标准模式下的IE 9和IE 10支持“输入”,但无法触发“输入”事件以响应剪切,粘贴,删除(从上下文菜单)或文本删除操作。此外,当用户从上下文菜单中选择建议的拼写时,Windows 8上的IE 10不会触发“输入”事件以响应拼写更正更改。

请参阅http://fiddle.jshell.net/2ScfA/show/

在所有版本的Internet Explorer中,当使用“剪切”和“粘贴”上下文菜单选项时,我会看到“剪切”和“粘贴”事件。

在IE 9标准模式和IE 10中,我可以使用DOMNodeRemoved和DOMNodeInserted来处理因将文本删除到可信任的DIV或使用上下文菜单更改DIV内容而导致的更改。

但是,IE 7和8不支持DOM突变事件。如果我使用IE 7或8的删除或撤消上下文菜单选项或将文本放入DIV,我没有看到针对这些更改触发的事件。

当用户从上下文菜单中选择“删除”或“撤消”,或者将文本放入DIV时,是否会在IE 7和8中触发事件,并且更改了可疑的DIV内容?

2 个答案:

答案 0 :(得分:2)

onselectionchange是IE中非常有用的事件。在较新的浏览器中,它与oninput非常相似。

答案 1 :(得分:1)

您还可以将事件名称从“输入”更改为“textinput”,它将在IE中运行,我这样做是为了支持请求修复我们的社交平台,如果有帮助的话。内容可编辑和IE不好玩。