火狐浏览器 document.execCommand('insertText', ...)

5
我知道FireFox可以很好地处理execCommand,但这次我认为我遇到了一个bug。
但也许我只是忽略了什么。
我有一个textarea,在其中执行insertText,只要我离开textarea或在其中写入,它就运行得很好。当我想执行第二次时,它写在文本中但不写在值中。这是因为insertText的缘故吗?
以下是我的示例:
<!doctype html>
<html>
    <head>
        <title>Test</title>
    </head>
    <body>
        <textarea designMode="on" id="textarea"></textarea>
        <a href="#" onclick="document.getElementById('textarea').focus(); document.execCommand('insertText', false, 'Text'); return false;">Insert text</a>
        <a href="#" onclick="document.getElementById('textarea').value = ''; return false;">Reset</a>
    </body>
</html>

有没有人有解决办法?不幸的是,无法使用 div contenteditable

FireFox 41.0.2中测试,没有启用任何Add-Ons


经过漫长的搜索,我终于找到了解决方法: 如何快速在文本区域中插入文本 - Shimrit Snapir
3个回答

3

1
感谢您的回答 - 请查看我的答案,它是在11月3日15年(!)对Lucky Chingi的回答。 - webprogrammer

0

0

文本区域应该使用 designMode,而不是 Contenteditable


谢谢您的回复!但是当我将 contenteditable 更改为 designMode 时,它不允许我执行 execCommand - 请参见更新的问题。 - webprogrammer
你是否也在使用我的示例中的 FireFox 41.0.2?当 designMode="on" 时,我甚至无法 insertText。当 contenteditable="true" 时,它可以工作,但一旦我更改了 textarea 中的值,它就不行了。 - webprogrammer
再次感谢您的回复!我测试了这个例子。我想我在dev.mozilla上看到过这个例子。它确实可以工作,但是它是一个div contenteditable,就像我说的:使用contenteditable="true"可以与我的文本区域一起工作,直到我改变值。https://developer.mozilla.org/en-US/docs/Migrate_apps_from_Internet_Explorer_to_Mozilla#Rich_text_editing - webprogrammer
点击这里 http://codepen.io/anon/pen/pjZbQa 可以尝试一下。当你点击“Insert text”时,它会插入文本。按下空格键或其他任何喜欢的键,再次点击“Insert text”。当你改变文本框的值时,你会发现它不起作用。 - webprogrammer
1
@mikeazo 不幸的是,这个漏洞被插入到了错误的产品中...我现在将其更改为FF。该漏洞本身仍未被分配或确认。https://bugzilla.mozilla.org/show_bug.cgi?id=1220696 - webprogrammer
显示剩余4条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接