2012-02-10 64 views
0

我有一个Chrome扩展,其中有两个文本框,一个用于URL,另一个用于LDAP。每当用户点击扩展程序图标,弹出页面打开,我填与当前网页的网址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"); 
+0

在尝试focus()之前,您的ldap变量的值是多少? – 2012-02-10 10:11:13

+0

ldap文本框为空。 – 2012-02-10 10:14:10

+0

这是什么意思?变量中有什么?它是未定义的还是它是一个对象? – 2012-02-10 10:17:18

回答

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> 
相关问题