我正在编写基本的初始页面chrome扩展程序,其中包含一个应在页面加载时自动对焦的搜索栏。现在通常我会简单地使用"自动对焦"我的HTML页面中输入元素的属性。但是,由于Chrome扩展程序不允许在扩展程序的HTML页面中使用此内联javascript或内联javascript,因此我被迫将我的代码移到外部javascript文件中。
所以我的HTML看起来像这样:
<form id="slot2form" method="get" action="http://www.google.com/search" target="_blank" onsubmit="closetab()">
<input id="slot2input" name="q" type="text" class="search" placeholder="temporary"></input>
</form>
现在,当页面自行加载时,closetab()(不重要)和自动对焦将起作用。但是,当页面作为chrome扩展加载时,这些内联javascripts将不起作用。所以,我已经附加了一个名为&#34; listeners.js&#34;的javascript文件。它监听像pageload这样的事件。以下是代码:
document.addEventListener("DOMContentLoaded", function(event) {
$('#slot3').gCalFlow({
calid: calConfig.calid,
maxitem: 3
});
$('#slot2input').focus();
});
document.addEventListener("submit", function closetab() {
setTimeout(function() {
close();
}, 1);
});
closetab()和.gCalFlow部分工作得很好。但是,如果页面作为chrome扩展加载,我无法为我的生活使slot2input元素获得焦点在页面加载。
我是否有其他方法可以专注于这个元素,或者我只是遗漏了一些明显的东西?
编辑:我已尝试从等式中删除其他javascripts,并在我的测试中只留下listeners.js。但是,我仍然收到同样的问题:没有关注DOMContentLoaded。我在这里走到了尽头。我的Chrome版本或操作系统是否重要?