我剛開始構建我的第一個Chrome擴展程序。我的應用程序中的一個功能是獲取當前網站的名稱。例如,如果當前網址與「*://*.facebook.com/」匹配,我會解釋此網址並將網站名稱稱爲Facebook。Chrome擴展程序:獲取當前網站名稱
我應該如何去這樣做呢?
我剛開始構建我的第一個Chrome擴展程序。我的應用程序中的一個功能是獲取當前網站的名稱。例如,如果當前網址與「*://*.facebook.com/」匹配,我會解釋此網址並將網站名稱稱爲Facebook。Chrome擴展程序:獲取當前網站名稱
我應該如何去這樣做呢?
由於內容腳本被注入到頁面中,因此您可以在內容腳本本身中使用window.location.host
並獲取您的站點的名稱。
目前尚不清楚您想要獲取主機名或頁面標題,但如果您願意,可以同時獲得它們。
裏面一個內容腳本你可以這樣做:
var site = location.hostname,
title = document.title;
alert("Site: " + site + " - Title: " + title);
如果你想從背景頁面做,你不希望使用的內容腳本,也沒有在標籤注入代碼,然後你只能獲取主機的名稱:
var site;
chrome.tabs.query({/* some query */}, function(tabs) {
site = tabs[0].url.split("/")[2];
alert("Site: " + site);
});
如果你也想從後臺頁面你需要imple頁面標題換貨一些消息:
var title;
chrome.runtime.onMessage.addListener(function(message, sender, sensResponse) {
if (message.title) {
title = message.title;
alert("Title: " + title);
}
});
chrome.tabs.query({/* some query */}, function(tabs) {
chrome.tabs.executeScript(tabs[0].id, {code: "chrome.runtime.sendMessage({title: document.title});"});
});
有關我在上面的代碼片段中使用,你可以看到這些文檔鏈接的方法的詳細信息:
非常感謝!一個非常詳細和有用的答案。 :) –
你們是不是在內容腳本這樣做呢? –
任何方式都可以,但我認爲在內容腳本中不可能做到這一點(因爲我們無法訪問chrome.tabs)。我想要做的是發送消息到後臺並找回解決方案。 –
我認爲它應該工作,如果你嘗試從內容腳本訪問'window.location.host',因爲腳本被注入到該頁面 –