Javascript在控制台中工作,但不在脚本标记内...控制台的上下文是什么?
我试图实现浏览器提供的富文本编辑器。这里是Mozilla的参考: https://developer.mozilla.org/en/rich-text_editing_in_mozillaJavascript在控制台中工作,但不在脚本标记内...控制台的上下文是什么?
我以前做过这件事,它可以在IE/Chrome/Firefox中工作,尽管可能有一些bug。
无论如何,我已经设置contenteditable = true(通过JavaScript),现在所有剩下要做的就是将按钮点击(对于“粗体”,“斜体”等格式)绑定到document.execCommand()调用。我正在使用jQuery bind()方法做到这一点。
但是当我调用这个函数时没有任何事情发生,比如说: document.execCommand('bold',false,null);
单击回调函数被调用,所有,但document.execCommand()被忽略。它不会发布任何类型的错误。但是,如果我选择文本,并从Javascript控制台运行相同的命令,无论是在Chrome还是Firefox,它都可以使用!文字变成粗体...
那么它如何在控制台中工作,但不在我的代码中?情境差异是什么?
由于
PS:我用的HTML “A” 的标签,以用于格式按钮(粗体,斜体等)。有一次,我跟一个按钮标签替换它,而不是,它的工作...没有多大意义的,我......
听起来好像是两个潜在的问题之一:
的选择在执行
document.execCommand()
调用之前丢失。正如你已经观察到的那样,使用按钮而不是链接可以解决这个问题。另一种选择是store the selection before the selection is lost and restore it before thedocument.execCommand()
call。或者using theunselectable
attribute可能工作。另一个可能的问题是您使用错误的
document
对象:您需要iframe的文档,而不是主文档中的文档。
请问一些代码? – lonesomeday 2011-05-07 10:35:11