2012-11-03 79 views
0

我正在创建我的第一个Chrome扩展。我的目标很简单,在某个网页上,我想隐藏一个ID为id的元素。 我已经创建了一个背景页面,该页面现在选择ID为someid 的元素并将其提醒到屏幕。问题是,ele的值是空的。 试过$(“#someid”)。hide();也没有运气。在Chrome扩展的标签页上找不到标识

有没有什么特别的我需要做的与选项卡中的DOM交互?我提醒 tab.url,并显示正确的网址。

<html> 
<head> 
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script> 
    <script src="http://code.jquery.com/mobile/1.0a4/jquery.mobile-1.0a4.min.js"></script> 
    <script> 
    $(document).ready(function(){ 
     chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab){ 
     if(changeInfo.status == "complete") 
      { 
      if(tab.url.indexOf("somedomain.com") > -1) 
      { 
       chrome.tabs.getSelected(null, function(tab){ 
       var tabUrl = tab.url; 
       chrome.tabs.executeScript(tab.id, {file: "background.js"},function({  
         var ele = document.getElementById("someid"); 
         alert(ele); 
           }); 
       }); 

      } 
      } 
     }); 
     }); 
     </script> 
    </head> 
    <body></body> 
</html> 
+1

您的'文档'这里是背景页面本身。为了找到正确的'ele',你应该在该标签文档的上下文中调用'document.getElementById',即从内容脚本或'executeScript'执行的脚本中调用。 – Stan

回答

0

正如斯坦所指出的那样,问题在于不恰当的背景。我使用了内容脚本,解决了这个问题。谢谢!