获取 Chrome 扩展中选项卡的完整 URL

发布于 2024-10-22 22:13:33 字数 386 浏览 1 评论 0原文

我正在尝试修改一个 chrome 扩展程序,该扩展程序将图像上传到 Picasa 并使用完整的 URL(例如 www.domain.com/whatever.jpg)标记它们,即它们上传的位置。

我在获取完整 URL 时遇到问题。当我尝试下面的代码时,它给了我一个不完整的 URL,只有 whatever.jpg,而不是 www.domain.com/

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

有人有什么想法吗?

谢谢,

戴夫

I'm trying to modify a chrome extension which uploads images to Picasa and labels them with the complete URL e.g. www.domain.com/whatever.jpg, of where they were uploaded from.

I'm having problems with getting the complete URL. When i try the following bit of code, it gives me an incomplete URL with only the whatever.jpg, and not the www.domain.com/

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

Anyone have any ideas?

Thanks,

Dave

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

初心未许 2024-10-29 22:13:33

回答

使用

chrome.tabs.query

chrome.tabs.getSelected 已被弃用。要获取当前活动选项卡的完整 URL,您需要使用 chrome.tabs.query 函数并执行类似以下

操作 示例

manifest.json

{
    "name": "Get Current Open Tab Info Example",
    "manifest_version": 2,
    "version": "0.1",
    "description": "How to get info on the current tab on the active window in chrome.",
    "background": {
        "scripts": ["background.js"]
    },
    "browser_action": {
        "default_title": "test"
    },
    "permissions": [
        "tabs"
    ]
}

back.js

chrome.browserAction.onClicked.addListener(function(tab) {
    chrome.tabs.query({
        active: true,
        currentWindow: true
    }, function(tab) {
        console.log(tab[0]);
        console.log(tab[0].url);
    });
});

运行示例屏幕截图

加载示例扩展

在此处输入图像描述

单击扩展按钮,浏览器窗口打开到 exampley.com
扩展弹出窗口的控制台日志

在此处输入图像描述

示例文件 http://mikegrace.s3.amazonaws.com/stackoverflow/current-tab.zip

Answer

Use

chrome.tabs.query

chrome.tabs.getSelected has been deprecated. To get the full URL of the currently active tab you will want to use the chrome.tabs.query function and do something like this

Example

manifest.json

{
    "name": "Get Current Open Tab Info Example",
    "manifest_version": 2,
    "version": "0.1",
    "description": "How to get info on the current tab on the active window in chrome.",
    "background": {
        "scripts": ["background.js"]
    },
    "browser_action": {
        "default_title": "test"
    },
    "permissions": [
        "tabs"
    ]
}

background.js

chrome.browserAction.onClicked.addListener(function(tab) {
    chrome.tabs.query({
        active: true,
        currentWindow: true
    }, function(tab) {
        console.log(tab[0]);
        console.log(tab[0].url);
    });
});

Running Example Screenshots

Load example extension

enter image description here

Clicking extension button with browser window opened to exampley.com
Console log of extension popup

enter image description here

Example files http://mikegrace.s3.amazonaws.com/stackoverflow/current-tab.zip

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文