我有谷歌Chrome扩展的乐趣,我只是想知道我如何在变量中存储当前选项卡的URL ?


当前回答

如果你想要存储通过chrome扩展打开或看到的使用的url的完整扩展:

在后台使用这个选项:

openOptionsPage = function (hash) {
  chrome.tabs.query({ url: options_url }, function (tabs) {
    if (tabs.length > 0) {
      chrome.tabs.update(
        tabs[0].id,
        { active: true, highlighted: true, currentWindow: true },

        function (current_tab) {
          chrome.windows.update(current_tab.windowId, { focused: true });
        }
      );
    } else {
      window.addEventListener(hash, function () {
        //url hash # has changed
        console.log(" //url hash # has changed 3");
      });
      chrome.tabs.create({
        url: hash !== undefined ? options_url + "#" + hash : options_url,
      });
    }
  });
};

你还需要index.html文件。你可以在Github上找到 清单文件应该是这样的:

{
  "manifest_version": 2,
  "name": "ind count the Open Tabs in browser ",
  "version": "0.3.2",
  "description": "Show open tabs",
  "homepage_url": "https://github.com/sylouuu/chrome-open-tabs",
  "browser_action": {},
  "content_security_policy": "script-src 'self' https://ajax.googleapis.com https://www.google-analytics.com; object-src 'self'",

  "options_page": "options.html",
  "content_scripts": [
    {
      "matches": ["<all_urls>"],
      "js": ["content.js"]
    }
  ],
  "background": {
    "scripts": ["background.js"]
  },

  "web_accessible_resources": ["img/*.png"],

  "permissions": ["tabs", "storage"]
}

完整版的简单应用程序可以在这个Github上找到:

https://github.com/Farbod29/extract-and-find-the-new-tab-from-the-browser-with-chrome-extention

其他回答

这是一个非常简单的方法

window.location.toString();  

你可能不得不这样做的内容脚本,因为它有所有的功能,在一个网页上的js文件可以有和更多。

这个解决方案已经测试过了。

在manifest.json中设置API的权限

"permissions": [ ...
   "tabs",
    "activeTab",
    "<all_urls>"
]

对第一个加载调用函数。https://developer.chrome.com/extensions/tabs#event-onActivated

chrome.tabs.onActivated.addListener((activeInfo) => {  
  sendCurrentUrl()
})

关于更改调用函数。https://developer.chrome.com/extensions/tabs#event-onSelectionChanged

chrome.tabs.onSelectionChanged.addListener(() => {
  sendCurrentUrl()
})

获取URL的函数

function sendCurrentUrl() {
  chrome.tabs.getSelected(null, function(tab) {
    var tablink = tab.url
    console.log(tablink)
  })

警告!已弃用chrome.tabs.getSelected。请使用chrome.tabs.query,如其他答案所示。


首先,你必须在manifest.json中设置API的权限:

"permissions": [
    "tabs"
]

并存储URL:

chrome.tabs.getSelected(null,function(tab) {
    var tablink = tab.url;
});

嗨,这里是一个谷歌Chrome样本,电子邮件当前的网站给一个朋友。背后的基本理念是你想要什么…首先,它获取页面的内容(对你来说不感兴趣)…然后它得到URL(<——好部分)

此外,这是一个很好的工作代码示例,我更喜欢阅读文档。

可在这里找到: 通过电子邮件发送本页

如果你想要存储通过chrome扩展打开或看到的使用的url的完整扩展:

在后台使用这个选项:

openOptionsPage = function (hash) {
  chrome.tabs.query({ url: options_url }, function (tabs) {
    if (tabs.length > 0) {
      chrome.tabs.update(
        tabs[0].id,
        { active: true, highlighted: true, currentWindow: true },

        function (current_tab) {
          chrome.windows.update(current_tab.windowId, { focused: true });
        }
      );
    } else {
      window.addEventListener(hash, function () {
        //url hash # has changed
        console.log(" //url hash # has changed 3");
      });
      chrome.tabs.create({
        url: hash !== undefined ? options_url + "#" + hash : options_url,
      });
    }
  });
};

你还需要index.html文件。你可以在Github上找到 清单文件应该是这样的:

{
  "manifest_version": 2,
  "name": "ind count the Open Tabs in browser ",
  "version": "0.3.2",
  "description": "Show open tabs",
  "homepage_url": "https://github.com/sylouuu/chrome-open-tabs",
  "browser_action": {},
  "content_security_policy": "script-src 'self' https://ajax.googleapis.com https://www.google-analytics.com; object-src 'self'",

  "options_page": "options.html",
  "content_scripts": [
    {
      "matches": ["<all_urls>"],
      "js": ["content.js"]
    }
  ],
  "background": {
    "scripts": ["background.js"]
  },

  "web_accessible_resources": ["img/*.png"],

  "permissions": ["tabs", "storage"]
}

完整版的简单应用程序可以在这个Github上找到:

https://github.com/Farbod29/extract-and-find-the-new-tab-from-the-browser-with-chrome-extention