Javascript Chrome扩展:获取当前站点名称
我刚刚开始构建我的第一个Chrome扩展。我的应用程序中的一个功能是获取当前站点的名称。例如,如果当前url与“*:/*.facebook.com/”匹配,我会将此url解释为facebook,并知道网站名称Javascript Chrome扩展:获取当前站点名称,javascript,google-chrome-extension,Javascript,Google Chrome Extension,我刚刚开始构建我的第一个Chrome扩展。我的应用程序中的一个功能是获取当前站点的名称。例如,如果当前url与“*:/*.facebook.com/”匹配,我会将此url解释为facebook,并知道网站名称 我应该怎么做呢?因为内容脚本被注入到页面中,所以您可以在内容脚本本身中使用window.location.host,并获取您的站点名称。不清楚您想要获取的是主机名还是页面标题,但如果需要,您可以同时获取这两个名称 在内容脚本中您可以执行以下操作: var site = location.h
我应该怎么做呢?因为内容脚本被注入到页面中,所以您可以在内容脚本本身中使用
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);
});
如果您还希望从后台页面获取页面标题,则需要实现一些消息传递:
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});"});
});
有关我在上述代码段中使用的方法的更多信息,请参见以下文档链接:
window.location.host
,应该可以工作,因为脚本被注入到该页面中是有效的。伟大而简单的解决方案。谢谢大家!@欧姆里亚哈龙,请把这个问题变成一个答案。避免在评论中回答-不能将其标记为已接受,这会使OP的“跟踪记录”变得不好,而且问题是否得到了回答也不明显。非常感谢!非常详细和有用的回答。:)