似乎我无法在我的chrome扩展弹出窗口的textarea上调用focus(),当它被打开时/ 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工作,focus()没有!
当我调试弹出窗口并键入$('textarea')。focus();在控制台中,它的工作原理。 此外,在ready-callback中添加的事件也会成功绑定。
任何帮助都非常感谢!
答案 0 :(得分:4)
我仍然不知道,为什么焦点没有设置在第一位,但是简单的超时就完成了工作:)
setTimeout(function() {
$('#moped-text').focus();
}, 500);
答案 1 :(得分:3)
Chrome 18的解决方法(找到here)
if(location.search !== "?foo")
{
location.search = "?foo";
throw new Error; // load everything on the next page;
// stop execution on this page
}
适合我!
答案 2 :(得分:0)
你有div“class”而不是id。所以请改用它:
$('.container').css("color", "red");
答案 3 :(得分:0)
我用这个来集中注意力。
我的元素有&#34;自动对焦&#34;作为一个属性。加载表单时,具有属性&#34; autofocus&#34;的元素得到了关注。
.directive(&#39;自动对焦&#39;,[&#39; $ timeout&#39;,功能($ timeout){ 返回{ 限制:&#39; A&#39;, link:function($ scope,$ element){ $ timeout(function(){ $元件[0] .focus(); }); } } }])
答案 4 :(得分:-1)
您只需使用<textarea name="newText" autofocus></textarea>
。