") 将-6ren">
gpt4 book ai didi

javascript - 使用 insertHTML 的 execCommand 的 iframe 撤消/重做(contenteditable)

转载 作者:太空狗 更新时间:2023-10-29 13:31:18 26 4
gpt4 key购买 nike

因此,目前我正在开发一个小按钮,要求用户输入视频链接,然后我将该链接放入 iframe 中,然后使用 document.execCommand("insertHTML", false, "<iframe width='350' height='551' src='<video_link_entered_by_user>'></iframe>") 将其插入到 contenteditable 中。 .这很好用,视频被嵌入到 contenteditable 中.

唯一的问题是,如果我这样做 Command + Z或按undoSafari , iframe不会因为某种原因被撤消。它适用于 Firefox , Chrome , Edge , 和 Opera , 但出于某种原因我认为 safari不明白如何undo它。

除了实现我自己的撤消/重做堆栈之外,是否有任何解决方法?我只想在用户选择 undo 时摆脱 iframe同样在 Safari 中,并在用户选择 redo 时将其添加回去.请帮助并提前致谢。

编辑:

这是一个 JS fiddle 来演示我在说什么。如果您在除 Safari 之外的任何浏览器中运行它并按撤消键,它就会起作用。但不是在 Safari 中。 http://jsfiddle.net/qg41pd3k/9/

最佳答案

我认为 Safari 并不真正支持它。查看 https://developer.mozilla.org/en-US/docs/Web/API/Document/execCommand , execCommand 方法返回 true/false 是否支持/启用该命令。在 Safari 中它总是返回 false(根据我的测试)。

我认为唯一的解决方法是实现您自己的撤消/重做堆栈。

关于javascript - 使用 insertHTML 的 execCommand 的 iframe 撤消/重做(contenteditable),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51831623/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com