如何在我的页面操作弹出窗口中获取当前打开的选项卡的URL?

Jop*_*eph 19 javascript google-chrome google-chrome-extension

我想创建一个自动登录我的服务器的扩展.所以我创建了一个后台页面来检查当前的URL,如果它符合我的URL正则表达式,我将显示页面操作图标.点击页面操作,我打开一个带有一些字段的弹出窗口.我需要获取当前打开的URL并将其填入弹出窗口中的一个字段中(例如,当我们单击标准书签页面操作时,URL会自动填充打开的弹出窗口).如何在Chrome扩展程序中执行此类操作?我尝试了从背景页面到弹出窗口的消息传递,但它无法正常工作.是否可以发送这样的消息?此外,我尝试为弹出的html文件设置onload,但我注意到它没有触发.请建议一种合适的方法来处理这种情况.

Rob*_*b W 44

使用chrome.tabs.query以下参数:

  • queryInfo对象:
    • active: true - 获取活动选项卡
    • lastFocusedWindow: true - 选择活动窗口
  • 回调函数:
    此函数接收一个参数:匹配选项卡的数组.由于只有一个窗口可以处于活动状态,并且该窗口中有一个选项卡,因此该阵列只有一个元素.此元素是具有Tab签名的对象.

代码段:

// Do NOT forget that the method is ASYNCHRONOUS
chrome.tabs.query({
    active: true,               // Select active tabs
    lastFocusedWindow: true     // In the current window
}, function(array_of_Tabs) {
    // Since there can only be one active tab in one active window, 
    //  the array has only one element
    var tab = array_of_Tabs[0];
    // Example:
    var url = tab.url;
    // ... do something with url variable
});
Run Code Online (Sandbox Code Playgroud)

activeTab权限足以使其工作.