Chrome扩展程序:获取当前网站名称

时间:2015-01-11 07:49:26

标签: javascript google-chrome-extension

我刚刚开始构建我的第一个Chrome扩展程序。我的应用程序中的一个功能是获取当前站点的名称。例如,如果当前网址与" *://*.facebook.com/"匹配,我会解释此网址并将网站名称识别为Facebook。

我该怎么做呢?

2 个答案:

答案 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并获取您网站的名称。