目前我正在开发一个小按钮,要求用户输入视频链接,然后将该链接转换为 iframe,并使用 document.execCommand("insertHTML", false, "<iframe width='350' height='551' src='<video_link_entered_by_user>'></iframe>")
将其插入到可编辑区域中。这个功能很好用,视频可以嵌入到 contenteditable
中。
唯一的问题是,如果我在 Safari 中按下 Command
+Z
或者点击 undo
,iframe
不会撤销。它在 Firefox
、Chrome
、Edge
和 Opera
中都能正常工作,但是似乎 Safari
不知道如何撤销它。
除了实现自己的撤销/重做堆栈之外,是否有任何解决方法?我只想在用户选择撤销时能够清除 iframe
,并在用户选择重做时重新添加它。请帮忙,谢谢!
编辑:
这里有一个 JSFiddle,演示了我的问题。如果在 Safari 以外的浏览器中运行此代码并按下撤销,则可以看到效果。但在 Safari 中无法正常工作。 http://jsfiddle.net/qg41pd3k/9/