[英]How to load HTML file into <editor>
我试图弄清楚如何让我的XUL应用程序打开HTML文件并将其加载到编辑器元素中。 但是,文档很少。
现在,我有一个内容窗口,如下所示:
<hbox id="main-frame" flex="1">
<tabbox id="workspace-tabbox" flex="1">
<tabs id="workspace-tabs"/>
<tabpanels id="workspace-tabpanels" flex="1" context="clipmenu"/>
</tabbox>
<splitter id="main-frame-splitter"/>
<iframe id="preview-frame" src="about:blank" flex="1"/>
</hbox>
使用javascript,我将<tab>
附加到<tabs>
,并将<tabpanel>
到<tabpanels>
。 然后,我创建一个<editor>
,将其附加到<tabpanel>
,并使其可编辑。
然后,有一个链接到此功能的“打开”按钮:
function promptFile() {
var filepicker = Components.classes["@mozilla.org/filepicker;1"].createInstance(Components.interfaces.nsIFilePicker);
var file;
var choice;
var path = null;
filepicker.init(window, "Open", filepicker.modeOpen);
filepicker.appendFilters(filepicker.filterHTML);
choice = filepicker.show();
if (choice == filepicker.returnOK) {
file = filepicker.file.QueryInterface(Components.interfaces.nsIFile);
path = file.path;
}
return path;
}
从这里开始,我不知道如何将其加载到<editor>
。 我也不确定我是否在正确的路径上获取“路径”,或者是否需要对“文件”对象进行操作。
任何见解或帮助,将不胜感激。
<editor>
本质上是一个框架-您只需要在该框架中加载正确的URL。 您可以使用nsIIOService.newFileURI
从nsIFile
实例获取该URL:
Components.utils.import("resource://gre/modules/Services.jsm");
var uri = Services.io.newFileURI(file);
var editor = document.getElementById("editor");
var loadFlags = Components.interfaces.nsIWebNavigation.LOAD_FLAGS_NONE;
editor.webNavigation.loadURI(uri.spec, loadFlags, null, null, null);
editor.makeEditable("html", true);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.