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

hsi*_*iou 4 javascript google-chrome-extension

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

我应该怎么做呢?

Mar*_*lli 5

您还不清楚要获取主机名或页面标题,但是可以同时获取它们。

在内容脚本中,您可以执行以下操作:

var site = location.hostname,
    title = document.title;

alert("Site: " + site + " - Title: " + title);
Run Code Online (Sandbox Code Playgroud)

如果要从后台页面执行此操作并且不想使用内容脚本,也不想在选项卡中插入代码,则只能获取主机名:

var site;

chrome.tabs.query({/* some query */}, function(tabs) {
    site = tabs[0].url.split("/")[2];
    alert("Site: " + site);
});
Run Code Online (Sandbox Code Playgroud)

如果您还想从后台页面获取页面标题,则需要实现一些消息传递:

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});"});
});
Run Code Online (Sandbox Code Playgroud)

有关我在以上代码片段中使用的方法的更多信息,请参见以下文档链接: