2017-07-02 22 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, " ")); 
}