如何使用 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.url
returns加载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, " "));
}
如果我的代码类似于:
var filter = {
url:
[
{hostContains: "example.com"},
{hostPrefix: "developer"}
]
}
function logOnDOMContentLoaded(details) {
console.log("onDOMContentLoaded: " + details.url);
}
browser.webNavigation.onDOMContentLoaded.addListener(logOnDOMContentLoaded, filter);
details.url
returns加载URL。如果我想要用户在 URL 栏中输入的原始 URL 怎么办?有什么办法可以得到这个吗?
如 post 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, " "));
}