【问题标题】:How to get current URL in Chrome on click of the button如何通过单击按钮在 Chrome 中获取当前 URL
【发布时间】:2013-06-29 10:23:59
【问题描述】:

我正在制作一个与一个网站共享 URL 的 chrome 扩展程序。现在我需要一个可以在浏览器中导航当前 URL 的代码。当我点击图标时,我想打开新标签(http://www.thatsite.com/sharer.php?u= + current URL)。

我有两个文件:

manifest.json

{
    "name": "Share on that site",
    "version": "1",
    "browser_action": {
        "default_icon": "icon.png"
    },
    "background": {
        "scripts": ["background.js"]
    },
    "permissions": ["tabs"],
    "manifest_version": 2
}

和 background.js

chrome.browserAction.onClicked.addListener(function(activeTab){
    var newURL = "http://www.leegly.com/sharer.php?u=" + <current URL here>;
    chrome.tabs.create({ url: newURL });
});

【问题讨论】:

  • 我已编辑您的帖子以使其更简洁。在此编辑期间,我还从您的清单文件中删除了 });,假设这是一个复制粘贴错误。这些字符的存在会导致清单文件无效,从而阻止加载您的扩展程序。如果您的原始清单文件确实包含此错误,只需从您编辑的问题中复制粘贴当前清单(并使用“activeTab”而不是“tabs”,如下面我的回答所建议的那样)。

标签: javascript google-chrome google-chrome-extension


【解决方案1】:

chrome.browserAction.onClicked 事件被调度时,第一个参数包含有关当前选项卡的信息。

要获取当前标签页的URL,首先请求manifest文件中的activeTab permissiontabs权限是不必要的,可以省略)。然后,获取 URL 就像阅读 tab.url 一样简单:

chrome.browserAction.onClicked.addListener(function(tab) {
    var url_encoded_url = encodeURIComponent(tab.url);
    var newURL = "http://www.leegly.com/sharer.php?u=" + url_encoded_url;
    chrome.tabs.create({ url: newURL });
});

请注意,我使用了encodeURIComponent。如果没有这个,如果当前 URL 包含一个 & 符号 (&amp;),您的代码将失败。

【讨论】:

    【解决方案2】:

    您可以使用以下功能

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

    【讨论】:

    • chrome.tabs.getSelected 自 Chrome 16 以来已被弃用。
    • @Rob W 我认为不必要的反对票。版本在 OP 中无处可见,目前正在我的浏览器中运行。
    • @ShashwatKumar Chrome Canary 已经是第 30 版了。使用不推荐使用的方法通常是不好的做法,即使它目前似乎可以正常工作。弃用是移除的第一步,因此该功能可能会在未来的任何时间中断。
    • 我无法控制他的电脑。它正在我的工作。他可能犯了其他错误。我没有在不知不觉中发布这个回复。它的工作,所以我做到了。
    • 如果您编辑您的答案以使用chrome.tabs.query,我将撤回反对票。
    猜你喜欢
    • 2019-04-10
    • 1970-01-01
    • 2019-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多