如何使用 webNavigation.onDOMContentLoaded 获取请求 URL

How can I get the request URL using webNavigation.onDOMContentLoaded

如果我的代码类似于:

var filter = {
  url:
  [
    {hostContains: "example.com"},
    {hostPrefix: "developer"}
  ]
}

function logOnDOMContentLoaded(details) {
  console.log("onDOMContentLoaded: " + details.url);
}

browser.webNavigation.onDOMContentLoaded.addListener(logOnDOMContentLoaded, filter);

details.urlreturns加载URL。如果我想要用户在 URL 栏中输入的原始 URL 怎么办?有什么办法可以得到这个吗?

如 post 所示,可以使用纯 javascript 代码提取 URL。此代码片段将达到目的。您将包含错误 URL 的字符串(字符串)提供给它,并且 webNavigation.onDOMContentLoaded.addListener 中包含请求 URL (子字符串)的变量名称被命名为 u。因此,通过调用:

var url = getParameterByName("u",str);

我可以收到请求 URL(网站 URL)。

function getParameterByName(name, url) {
    if (!url) url = window.location.href;
    name = name.replace(/[\[\]]/g, "\$&");
    var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"),
        results = regex.exec(url);
    if (!results) return null;
    if (!results[2]) return '';
    return decodeURIComponent(results[2].replace(/\+/g, " "));
}