Chrome extension popup textarea focus

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

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

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

Я ссылаюсь на него в popup.html следующим образом:

<div>
 
 </div>

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

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

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

5 ответов

я все еще не знаю, почему фокус не установлен в первую очередь, но простой тайм-аут выполняет задание:)

setTimeout(function() {
 $('#moped-text').focus();
}, 500);


Временное решение для Chrome 18 (найдено здесь)

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

Работает для меня!


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

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

.directive('autofocus', ['$ timeout', function ($ timeout) { вернуть {   ограничьте: "A",       link: function ($ scope, $element) {           $ timeout (function() {               $ Элемента [0].focus();           });       }   } }])


У вас есть div с классом "container" not id. Поэтому используйте это вместо:

$('.container').css("color", "red");


Вы можете просто использовать .

licensed under cc by-sa 3.0 with attribution.