javascript - 如何通过单击按钮在 Chrome 中获取当前 URL

标签 javascript google-chrome google-chrome-extension

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

我有两个文件:

list .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 });
});

最佳答案

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

要获取当前选项卡的 URL,首先请求 activeTab permission在 list 文件中(不需要 tabs 权限,可以省略)。然后,获取 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 包含一个符号 (&),您的代码将失败。

关于javascript - 如何通过单击按钮在 Chrome 中获取当前 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17379190/

相关文章:

javascript - 安卓 3.0 : JS scrollTop not working on chrome/webview

google-chrome-extension - 加载 chrome 扩展时,console.log() 不起作用

javascript - Summernote JS - 在同一初始化中注入(inject)代码和参数

javascript - 无法在同一台机器上加载 XMLHttpRequest

javascript - 在 JavaScript 中,在函数作用域之外访问未声明的变量赋值?

html - 强制div在同一行

javascript - 浏览器扩展可以覆盖 CSS 媒体功能/查询吗?

javascript - 使用 JavaScript 检测非 http 重定向

javascript - 什么是 SetInterval 的替代方案?

javascript - 带有预先输入的 Angular 自动完成功能