Javascript IE 7和8中的内容可编辑更改事件

Javascript IE 7和8中的内容可编辑更改事件,javascript,internet-explorer-8,internet-explorer-7,contenteditable,Javascript,Internet Explorer 8,Internet Explorer 7,Contenteditable,就像,我希望能够在用户更改contenteditable DIV的内容时调用函数。但是,我希望支持IE7-10。IE 7和8“输入”事件。标准模式下的IE 9和IE 10支持“输入”,但无法触发“输入”事件以响应剪切、粘贴、删除(从上下文菜单)或文本删除操作。此外,当用户从上下文菜单中选择建议的拼写时,Windows 8上的IE 10不会触发“输入”事件以响应拼写更正更改 看 在所有版本的Internet Explorer中,当使用剪切和粘贴关联菜单选项时,我都会看到“剪切”和“粘贴”事件 在I

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

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

在IE9标准模式和IE10中,我可以使用DOMNodeRemoved和DOMNodeInserted来处理将文本放入contenteditable DIV或使用上下文菜单来更改DIV的内容所导致的更改

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


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

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

您也可以将事件名称从“input”更改为“textinput”,它将在IE中工作,我不久前在我们的社交平台上做了一个支持请求修复,如果有帮助的话。内容可编辑,IE不能很好地运行。

你可以在旧版IE中尝试。你可以查看google closure library:当你下载并提取库时,你会在goog/demos/editor/editor.html下找到gmail编辑器。如果这个编辑器的行为符合你的要求,那么你可以看看他们是如何实现它的。在updateFieldContents中设置断点并检查堆栈。我怀疑他们使用了setInterval。html 5 content item editable有很多怪癖,所以我祝你好运感兴趣的代码似乎在goog/editor/Field.prototype.setupChangeListeners中,谢谢@Teemu,selectionchange成功了。如果你把你的评论转换成答案,我可以接受。@HMR:谢谢你的链接。真的吗?在IE 10中删除?如果是这样的话,那就太可惜了。几年前,这是一个非常有用的事件。
onselectionchange
仍然存在于IE 10中,谢天谢地:@TimDown非常感谢,很好,它仍然存在:)。它看起来像只使用了
addEventListener()
,然后它就不工作了。(链接文档位于“
遗留事件
”)下。您使用
addEventListener()
的链接JSFIDLE在IE 10中适用。重新。MSDN文档,我认为这正是他们放置不属于标准的事件的地方,不幸的是,
selectionchange
。我曾经建议将其标准化为WHATWG,但没有任何结果。@TimDown看起来像是被这个问题搞砸了,我也在IE10中工作:)。