我使用.open()
创建一个标签,在data/search.html
中显示HTML并附加data/search.js
作为内容脚本文件。
var tabs = require("sdk/tabs");
var data = require("sdk/self").data;
function executeSearch () {
/* set up search tab */
tabs.open({
url: data.url("search.html"),
onReady: function (tab) {
var worker = tab.attach({
contentScriptFile: data.url("search.js")
});
worker.port.on("searchtext", function (wordsJson) {
worker.port.emit("matchingPages", JSON.stringify(hlutils.matchingPages(wordsJson)));
});
}
});
}
HTML正确显示且内容脚本正常运行,但在HTML文件(有效HTML5中)中,输入元素的autofocus
属性不受支持。基本上,页面中没有显示的光标,没有点击输入元素就不能输入。我尝试使用
document.getElementById("search").focus();
在内容脚本文件中,也在HTML文件中的script
元素中(在引用的元素下面),都无济于事。
答案 0 :(得分:0)
终于明白了。必须将以下内容添加到内容脚本文件中:
window.addEventListener("load", function (event) {
document.getElementById("search").focus();
});