我制作了一个简单的Chrome扩展程序-使用表单进行搜索。
当我打开扩展程序时,表单没有默认焦点,需要额外的点击。
应该在popup.html表单上发生焦点。
现在JavaScript .focus()
方法无法工作,是否有其他方法来为Chrome扩展设置默认焦点?
HTML:
<input type="text" id="mydata" />
JS:
document.getElementById('mydata').focus();
我制作了一个简单的Chrome扩展程序-使用表单进行搜索。
当我打开扩展程序时,表单没有默认焦点,需要额外的点击。
应该在popup.html表单上发生焦点。
现在JavaScript .focus()
方法无法工作,是否有其他方法来为Chrome扩展设置默认焦点?
HTML:
<input type="text" id="mydata" />
JS:
document.getElementById('mydata').focus();
tabindex
属性。因此,你可以使用它。<input type="text" id="mydata" tabindex="1" />
让它能够在没有任何JavaScript代码的情况下工作。仅供参考。
Chrome支持autofocus,无需使用任何JavaScript。
<input type="text" id="mydata" autofocus />
<script type="text/javascript">
function Init () {
if (document.hasFocus)
setInterval ("checkFocus ()", 300);
}
function checkFocus () {
if (!document.hasFocus ()) {
document.location.reload();
}
}
document.getElementById('mydata').focus();
</script>
然后在您的body标签中调用代码:
<body onload="Init ();">
就是这样。 请记住,这个解决方案只是一个权宜之计。希望未来的Chrome版本可以修复扩展程序中的焦点问题,使得这个解决方案变得不再必要。
function setFocus(loc) {
window.open(loc, 'popup1', 'height=655,width=710,status=yes,toolbar=no,menubar=no,location=no,scrollbars=yes,resizable=no,minimizable=no').close();
window.open(loc, 'popup1', 'height=655,width=710,status=yes,toolbar=no,menubar=no,location=no,scrollbars=yes,resizable=no,minimizable=no').status.fixed();
}
然后:
lnkSongTitle.Attributes.Add("onclick", "javascript:setFocus('url')");
或者在 HTML 中使用 onClick
调用 SetFocus() 函数
可以尝试这样做:
<html>
<head>
<script type="text/javascript">
function setFocus()
{
document.getElementById("target").focus();
}
</script>
</head>
<body onload="setFocus()">
<input type="text" id="target" name="target" size="25" value="" />
</body>
</html>
对我来说它有效。