2012-02-10 5 views
0

У меня есть расширение 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();"> 

Что я могу сделать для этого?

Редактировать: Этот оператор получает элемент HTML из документа, Id которого является ldap_textbox.

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

Какова ценность вашей переменной ldap перед тем, как вы попытаетесь сфокусироваться()? –

+0

Текстовое поле ldap пустое. –

+0

Что это значит? Что находится в переменной? Является ли это неопределенным или это объект? –

ответ

0

Я только что нашел решение для этого. Мне нужно было сфокусироваться на текстовом поле ldap, которое было ниже текстового поля URL-адреса, и по какой-то причине во всплывающей странице по умолчанию основное внимание уделяется первому элементу. Итак, я изменил первый элемент на текстовое поле 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> 
Смежные вопросы