Chrome新标签自动对焦

时间:2013-02-01 19:45:55

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

我正在制作Chrome扩展程序,我正在使用以下

的manifest.json

{
        "name": "Test extension",
        "version": "1.1",
        "description": "Test extension.",
        "icons": {
            "128": "icon_128.png"
        },
        "chrome_url_overrides": {
            "newtab": "cc.html"
        },
        "manifest_version": 2
    }

cc.html

    <style>body,html{padding:0;margin:0}</style>
    <iframe src="theiframe.html" frameborder="0" height="200px" width="200px">
    </iframe>

theiframe.html

<style>body,html{padding:0;margin:0}</style>
<form action="http://www.example.com/search">
    <input autofocus="autofocus" tabindex="1" type="text" />
    <input tabindex="2" value="search" type="submit"/>
</form>

当用户打开新标签页时,自动对焦将位于地址栏中。我希望用户能够改变它。是否有任何代码会自动对搜索输入进行自动对焦?

3 个答案:

答案 0 :(得分:6)

也许它只能使用iframe。但是,您可以创建一个示例页面,该页面将在打开新标签页时重定向到您想要的页面,因此input的{​​{1}}将自动聚焦。

这是一种方法:


的manifest.json

autofocus


r.html

"chrome_url_overrides": {
    "newtab": "r.html"
},


s.js

<html>
  <head>
    <title>Loading...</title> <!-- user friendly -->
    <noscript>
      <meta http-equiv="refresh" content="0; url=https://www.google.com"> <!-- in case javascript is disabled -->
    </noscript>
    <script src="s.js"></script>
  </head>
  <body></body>
</html>


这是最好的方法(也许是唯一的方法)。

答案 1 :(得分:3)

正如Erik Kay(Chrome工程总监)在this Chromium bug report中指出的那样,预期的行为是Omnibox默认具有焦点,并且无法改变这一点。

因此,该错误被标记为WontFix

答案 2 :(得分:2)

来自API docs的提示:

  

不要依赖具有键盘焦点的页面。   当用户创建新标签时,地址栏始终首先获得焦点。