chrome扩展popup textarea焦点

时间:2012-03-10 13:19:36

标签: javascript jquery google-chrome-extension

似乎我无法在我的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中添加的事件也会成功绑定。

任何帮助都非常感谢!

5 个答案:

答案 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>