Не удается установить фокус на текстовое поле - PullRequest
0 голосов
/ 10 февраля 2012

У меня есть расширение 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 из документа с идентификатором ldap_textbox.

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

1 Ответ

0 голосов
/ 12 марта 2012

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