6

ページが行っているすべての呼び出しを監視している小さな Google Chrome 拡張機能を作成しています。アイデアは、ページの動作と外部呼び出しの数をログに記録することです。呼び出しを開始するページのソース URL を取得する必要がある部分を除いて、すべてが機能しています。

たとえば、ブラウザで www.stackoverflow.com にアクセスすると、onbeforerequest リスターが開始され、すべての呼び出しが行われます。ここまでは順調ですね。しかし、私はまだ呼び出しを行っているページの名前が必要です。この場合、「www.stackoverflow.com」と呼び出しの所有者が必要です。

タブから取得しようとしましたが、 chrome.tabs.get はコールバックを使用しており、それがすべて終了する前に呼び出されず、すべての呼び出しが処理されました。

ソース URL を取得する方法についてのアイデアはありますか?

URL を取得するために今このコードを使用していますが、「未定義」を返し続けます:

var contentString = "";
chrome.webRequest.onBeforeRequest.addListener(
  function (details) {
      var tabid = details.tabId;      
      var sourceurl = "N/A";
      if (tabid >= 0) {
          chrome.tabs.get(parseInt(tabid), function (tab) {
              sourceurl = tab.url;
              alert(sourceurl);
          });
      }      
      });

アラートを実行すると、リクエストごとに未定義になります

編集2 - これは私のために働いています

chrome.tabs.get(parseInt(tabid), function (tab) {
              if (tab != undefined) {
                  alert(tab.url);
              }
          });
4

2 に答える 2

1

onBeforeRequest TabID を返すと、タブ APIgetのメソッドを使用して、タブへの参照とページの URL を取得できます。

于 2013-02-28T10:27:07.053 に答える