Chrome扩展程序无法关注输入元素

时间:2015-10-27 20:28:21

标签: javascript html google-chrome google-chrome-extension focus

我正在编写基本的初始页面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版本或操作系统是否重要?

0 个答案:

没有答案