execCommand justifycenter

时间:2010-10-24 04:44:56

标签: javascript jquery

如果我在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的东西对我来说是新的,并且可以为身体启用它,但是对于其他一切来说它禁用它似乎是一个非常糟糕的黑客。

2 个答案:

答案 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)。该解决方法包含在后面的讨论中,虽然有点难看。