无法将焦点设置在文本框上

时间:2012-02-10 10:07:57

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

我有一个chrome扩展,其中有两个文本框,一个用于URL,另一个用于LDAP。每当用户点击扩展图标时,就会打开一个弹出页面,并在下面的代码的帮助下用当前页面URL填充URL文本框:

function setValue()
{
    var text = document.getElementById("url_textbox");
    var ldap = document.getElementById("ldap_textbox");    
    chrome.tabs.getSelected(null, function(tab) {
        text.value = tab.url;
        ldap.focus();
    });
}

语句ldap.focus()在这里不起作用。我在页面加载时调用此函数。

<body onload = "setValue();">

我能为此做些什么?

编辑:此语句从Id为ldap_textbox的文档中获取HTML元素。

var ldap = document.getElementById("ldap_textbox");

1 个答案:

答案 0 :(得分:0)

我刚刚为此找到了解决方案。我需要将焦点放在URL文本框下方的ldap文本框中,出于某种原因,在弹出页面中,默认焦点将转到第一个元素。所以,我将第一个元素更改为ldap文本框。 :)

<script type="text/javascript">
function setValue()
{
    var text = document.getElementById("url_textbox");
    chrome.tabs.getSelected(null, function(tab) {
        text.value = tab.url;
    });
}
</script>

<html>
    <body onload="setValue();">
        <table>
        <tr>
            <td>LDAP</td><td><input type="text" id="ldap_textbox"/></td>
        </tr>
        <tr>
            <td>URL</td><td><input type="text" id="url_textbox"/></td>
        </tr>
        </table>
     </body>
</html>