我正在制作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>
当用户打开新标签页时,自动对焦将位于地址栏中。我希望用户能够改变它。是否有任何代码会自动对搜索输入进行自动对焦?
答案 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的提示:
不要依赖具有键盘焦点的页面。 当用户创建新标签时,地址栏始终首先获得焦点。