расширение Chrome всплывающее окно textarea focus - PullRequest
4 голосов
/ 10 марта 2012

Кажется, я не могу вызвать focus () для текстовой области моего всплывающего окна расширений Chrome, когда оно открывается / после ondomready.

У меня есть что-то подобное в popup.js:

$(document).ready(function () {
   console.log($("#moped-text"));
   $('textarea').focus();   
   $('.container').css("color", "red");
});

Я ссылаюсь на это в popup.html так:

<html>
  <head>

    <link rel="stylesheet" href="css/content.css" type="text/css">

    <script type="text/javascript" src="js/lib/jquery.js"></script>
    <script type="text/javascript" src="js/popup.js"></script>
  </head>
 <body>
       <div class="container">
            <textarea name="newText"></textarea>
       </div>     
 </body>

css-change работает, фокус () не работает!

Когда я отлаживаю всплывающее окно и набираю $ ('textarea'). Focus (); в консоли все работает. Также события, добавленные в готовый обратный вызов, связаны успешно.

Любая помощь высоко ценится!

Ответы [ 5 ]

4 голосов
/ 26 марта 2012

Я до сих пор не знаю, почему фокус не установлен на первом месте, но простой тайм-аут делает свою работу:)

setTimeout(function() {
  $('#moped-text').focus();
}, 500);
3 голосов
/ 19 апреля 2012

Обходной путь для Chrome 18 (найдено здесь )

if(location.search !== "?foo")
{
  location.search = "?foo";
  throw new Error;  // load everything on the next page;
                    // stop execution on this page
}

У меня работает!

0 голосов
/ 27 января 2016

Я использую это для фокусировки.

Мой элемент имеет «автофокус» в качестве атрибута.Когда форма загружена, элемент с атрибутом «автофокус» получает фокус.

.directive ('автофокус', ['$ timeout', функция ($ timeout) {return {restrict: 'A', link: function ($ scope, $ element) {$ timeout (function () {$ element [0] .focus ();});}}}])

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

Вы можете просто использовать <textarea name="newText" autofocus></textarea>.

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

У вас есть div с классом "container", а не id.Так что используйте это вместо:

$('.container').css("color", "red");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...