0

我曾经.open()创建一个显示 HTML 的选项卡,并将其作为内容脚本文件data/search.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();

在内容脚本文件中,以及在scriptHTML 文件中的一个元素中(在引用的元素下方),都无济于事。

4

1 回答 1

0

终于想通了。必须将以下内容添加到内容脚本文件中:

window.addEventListener("load", function (event) {
  document.getElementById("search").focus();
});
于 2013-09-01T12:06:07.757 回答