如果我在Firefox中尝试execCommand("justifycenter"...
我的页面上的一个段落,它就不起作用;它给了我这个疯狂的错误:
未捕获异常:[异常...“组件返回失败代码:0x80004005(NS_ERROR_FAILURE)[nsIDOMNSHTMLDocument.execCommand]”nsresult:“0x80004005(NS_ERROR_FAILURE)”location:“JS frame :: editor.php?id = new: :onclick ::第1行“数据:否]
我已经知道原因了;这是因为我的身体标签没有满足,这很烦人,因为其他浏览器不需要这个。
现在,我的问题是我不希望整个页面可以编辑。我正在写一些WYSIWYG页面构建器,将整个编辑器粘贴到iframe中太过分了。有没有人知道其他任何选择?这个整个execCommand的东西对我来说是新的,并且可以为身体启用它,但是对于其他一切来说它禁用它似乎是一个非常糟糕的黑客。
答案 0 :(得分:2)
类似的东西:
function myExecCommand(aCommandName, aShowDefaultUI, aValueArgument) {
document.contentEditable = true;
document.execCommand(aCommandName, aShowDefaultUI, aValueArgument);
document.contentEditable = false;
}
同样可以工作,同样根据MDC你可以在有问题的元素上设置contentEditable而不是正文,它应该可以工作。
注意:我相信FireFox中必须包含3个参数。
答案 1 :(得分:0)
我最近也发现了这一点,我确实认为这是Firefox中的一个错误(https://bugzilla.mozilla.org/show_bug.cgi?id=442186)。该解决方法包含在后面的讨论中,虽然有点难看。