2012-11-03 78 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

正如斯坦所指出的那樣,問題在於不恰當的背景。我使用了內容腳本,解決了這個問題。謝謝!