2012-03-10 58 views
4

看来,我不能调用焦点()在我的Chrome扩展弹出的textarea时,它打开/ 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的变化的作品,焦点()不!

当我调试弹出并键入$('textarea')。焦点();在控制台中,它的工作原理。 在ready-callback内部添加的事件也成功绑定。

任何帮助高度赞赏!

+0

这个心不是我的工作也不:[自动对焦在谷歌的Chrome扩展程序(HTTP://计算器.com/questions/6594064/auto-focus-in-google-chrome-extension) – hc2p 2012-03-10 13:42:42

回答

3

我仍然不知道,为什么焦点不在设定在首位,但一个简单的超时没有工作:)

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

这对我来说一直都适用,但是在Chrome 18中(只是把它变成了稳定的频道),这是行不通的。即使我设置了超时到1000毫秒没有任何反应,你是否遇到同样的问题,如果是的话,你是否知道当前情况下的解决方案/解决方法? – pimvdb 2012-03-31 20:45:35

+1

与Chrome相同20 – Soviut 2012-07-07 20:23:41

0

你有类“container”不是id的div。所以用这个来代替:

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

thanks hamczu!我相应地改变了我的问题。 CSS不是问题,它的焦点()。 – hc2p 2012-03-10 14:32:03

-1

您可以简单地使用<textarea name="newText" autofocus></textarea>

+1

这也不起作用。似乎在Chrome扩展中被阻止.. :(或其他的东西在之后获得焦点 – hc2p 2012-03-10 18:04:45

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 
} 

适合我!

+0

哇,我把它放在弹出窗口的顶部。 js和voila!谢谢! – 2012-09-14 23:29:10

+0

真的很让人困惑......但它很有效 – fehrlich 2012-09-18 17:53:02

0

我用它来关注。

我的元素具有“自动对焦”作为属性。加载表单时,具有“自动聚焦”属性的元素将获得焦点。

.directive( '自动对焦',[ '$超时',函数($超时){ 返回{ 限制: 'A', 链路:功能($范围,$元件){$ 超时(功能(){$ 元素[0] .focus(); });} } } ])