0

私はChrome拡張機能を新しくコーディングしているので、関数を呼び出すためにこれを使用します。

getElementsByTagName('body').addEventListener("load", function() {

  chrome.tabs.getSelected(null, function(tab) {

     alert(tab.url);

  });

}, false);

そして、それは機能しません。私もこれを試しました:

getElementsById('bottom').addEventListener("click", function() {

  chrome.tabs.getSelected(null, function(tab) {

     alert(tab.url);

  });

}, false);

問題がmanifest.jsonにあるのかどうかわからないので、ここにあります:

{

   //Main

   "name": "Linknote",
   "version": "0.4",
   "manifest_version": 2,
   "description": "Store all your links",
   "permissions": [
     "storage",
     "http://ajax.googleapis.com/",
     "tabs"
   ],

//Chrome Tab

   "browser_action": {

     "default_title": "helloworld",      // optional; shown in tooltip
     "default_popup": "popup.html"        // optional

   }

}
4

2 に答える 2

0

コードに2つのエラーがあります。1つ目はdocument、getElementByIdにオブジェクトを追加するのを忘れていることです。このコードをpopup.htmlで実行しただけで、何の問題もありませんでした。

document.getElementById("bottom").addEventListener("click", function() { 
       console.log("Clicked") 
}, false);

2つ目は、getElementsByTagNameがNodeCollectionを返すことを忘れているため、EventListenerを追加する最初のノードを取得する必要があることです。

document.getElementsByTagName("body")[0].addEventListener("load", function() { 
       console.log("Loaded") 
}, false);

コードは、開発者ツールバーに構文エラーを返します。Chrome拡張機能で開くには、[操作の参照]アイコン/ [ページの操作]アイコンをクリックして、ポップアップを右クリックします。「要素の検査」をクリックすると、まったく新しい世界が表示されます。

于 2012-12-30T16:46:42.523 に答える
0

Chrome のブラウザ アクションを使用している場合、実際にはこのようになるはずです。

chrome.browserAction.onClicked.addListener( function(tab){
    -- Your javascript code here --
});

私はこれがあなたが欠けているものだと思います!!

于 2012-12-30T16:41:01.237 に答える