2017-07-02 73 views
0

如果我有类似代码:我怎样才能使用请求URL 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返回加载的URL。如果我想要用户在URL栏中输入的原始URL,该怎么办?有没有办法得到这个?

回答

0

从帖子HERE的结果可以看出,使用纯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, " ")); 
}