我正在尝试制作一个Firefox扩展。为什么当我想使用 document.body.innerHTML = data; 在新打开的选项卡中,它不起作用。这是我的代码:
函数变化(){
//在新标签中打开谷歌并选择它
tab=gBrowser.addTab("http://www.google.com");
gBrowser.selectedTab=标签;
//创建nslFile对象
var path="/home/foo/notify.txt"
var file = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
file.initWithPath(路径);
//将文件内容放入数据变量
变量数据 = "";
var fstream = Components.classes["@mozilla.org/network/file-input-stream;1"]。
createInstance(Components.interfaces.nsIFileInputStream);
var cstream = Components.classes["@mozilla.org/intl/converter-input-stream;1"]。
createInstance(Components.interfaces.nsIConverterInputStream);
fstream.init(文件, -1, 0, 0);
cstream.init(fstream, "UTF-8", 0, 0); // 如果你愿意,你可以在这里使用另一种编码
让(str = {}){
cstream.readString(-1, str); // 读取整个文件并将其放入 str.value
数据 = str.value;
}
cstream.close(); // 这会关闭 fstream
//通过文件内容改变谷歌页面的内容
document.body.innerHTML = 数据;
}