0

初めての Chrome 拡張機能を作成しています。私の目的は単純です。特定の Web ページで、ID が someid の要素を非表示にしたいと考えています。バックグラウンド ページを作成しました。ここでは、id が someid の要素を選択し、画面に警告します。問題は、ele の値が null であることです。$("#someid").hide(); を試しました 同様に、運が悪い。

タブで DOM を操作するために何か特別なことをする必要がありますか? tab.url にアラートを出すと、正しい 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>
4

1 に答える 1

0

スタンが指摘したように、問題は不適切な状況でした。コンテンツスクリプトを使用したところ、問題は解決しました。ありがとう!

于 2012-11-04T00:00:45.457 に答える