我刚刚开始构建我的第一个Chrome扩展程序。我的应用程序中的一个功能是获取当前站点的名称。例如,如果当前网址与" *://*.facebook.com/"匹配,我会解释此网址并将网站名称识别为Facebook。
我该怎么做呢?
答案 0 :(得分:4)
您不清楚想要获取主机名或页面标题,但如果您愿意,可以同时获取它们。
在内容脚本中,您可以执行以下操作:
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);
});
如果您还想从后台页面获取网页标题,您需要实施一些消息传递:
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});"});
});
有关我在上述代码段中使用的方法的更多信息,您可以看到这些文档链接:
答案 1 :(得分:2)
由于内容脚本已注入页面,因此您可以在内容脚本中使用window.location.host
并获取您网站的名称。