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

时间:2017-07-02 14:43:11

标签: firefox firefox-addon firefox-webextensions

如果我的代码类似于:

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

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

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

details.url返回加载的网址。如果我想要用户在URL栏中输入的原始URL怎么办?有没有办法得到这个?

1 个答案:

答案 0 :(得分:0)

从帖子HERE中可以看出,可以使用纯javascript代码提取网址。此代码段将实现此目的。您使用包含错误URL(字符串)的字符串来提供它,并且包含webNavigation.onDOMContentLoaded.addListener中的请求URL(子字符串)的变量名称被命名为u。所以,通过调用:

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

我可以获取请求网址(网站网址)。

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, " "));
}