我正在尝试按照本文的说明通过XUL的元素使用Midas。到目前为止,我有以下代码:
<window id="main" title="Anunciador Blog Editor" width="300" height="300"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
xmlns:xhtml="http://www.w3.org/1999/xhtml">
<script type="application/x-javascript">
<![CDATA[
var editor = null;
function onLoad() {
editor = document.getElementById('editor');
editor.contentDocument.designMode = 'on';
}
function onBoldButtonCommand() {
editor.contentDocument.execCommand('bold', false, null);
}
window.addEventListener("load", onLoad, false);
]]>
</script>
<button label="Bold" oncommand="onBoldButtonCommand();" />
<editor id="editor" type="content-primary" editortype="html" src="about:blank" flex="1" />
</window>
但是,当我单击“粗体”按钮并在 中选择了一些文本时<editor>
,文本不会更改,并且 JS 控制台会显示以下错误:
Error: uncaught exception: [Exception... "Component returned failure code: 0x80004005
(NS_ERROR_FAILURE) [nsIDOMNSHTMLDocument.execCommand]" nsresult: "0x80004005
(NS_ERROR_FAILURE)" location: "JS frame :: chrome://anunciador/content/main.xul ::
onBoldButtonCommand :: line 14" data: no]
这对我来说没有意义,因为我已经启用了编辑模式:
editor.contentDocument.designMode = 'on';
另外,如果我只换行
<editor id="editor" type="content-primary" editortype="html" src="about:blank" flex="1" />
到
<xhtml:iframe id="editor" src="about:blank"></xhtml:iframe>
我可以在 iframe 中编辑和格式化文本(但我更喜欢使用编辑器)。
我是不是忘记了什么?