Chrome 扩展程序,onbeforerequest,哪个页面正在调用?

Bri*_*ard 6 google-chrome-extension

我正在制作一个小型 google chrome 扩展程序,它正在监视页面正在进行的所有调用。这个想法是记录页面的行为方式以及进行了多少次外部调用。除了我需要获取发起呼叫的页面的源 url 的部分外,一切正常。

例如,我在浏览器中访问 www.stackoverflow.com,然后我的 onbeforerequest 列表器启动并给我所有调用。到现在为止还挺好。但我仍然想要进行调用的页面的名称,在这种情况下我想要:“www.stackoverflow.com”和调用的所有者。

我尝试从选项卡中获取它,但是 chrome.tabs.get 使用了一个回调,并且在它全部结束之前并没有调用它,并且我处理了所有调用。

关于如何获取源网址的任何想法?

立即 使用此代码编辑我以获取 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);
          });
      }      
      });
Run Code Online (Sandbox Code Playgroud)

做警报时,我对每个请求都没有定义

编辑 2 - 这对我有用

chrome.tabs.get(parseInt(tabid), function (tab) {
              if (tab != undefined) {
                  alert(tab.url);
              }
          });
Run Code Online (Sandbox Code Playgroud)

stu*_*rtd 1

onBeforeRequest 返回 TabID,然后您可以使用选项卡 APIget的方法来获取对选项卡的引用,从而获取页面的 URL。