【问题标题】:How to send window object from active tab to extension?如何将窗口对象从活动选项卡发送到扩展?
【发布时间】:2016-10-26 18:49:18
【问题描述】:

我需要从this 应用程序(屏幕下方)中的某个选项卡获取用户存储数据(本地和会话)。

据我了解-我需要从活动选项卡中获取窗口对象。我有一个对象,但我可以在当前选项卡的控制台中使用它。

我需要在扩展程序的控制台中使用它(如何?)。我的目标是在表格中显示这些数据(这里没问题)。


ma​​nifest.json
{
"manifest_version": 2,

"name": "Test extension",
"description": "...",
"version": "1.0",

"browser_action": {
    "default_icon": "icon.png",
    "default_popup": "popup.html",
    "default_title": "Click here!"
},

"permissions": [
    "storage",
    "tabs",
    "activeTab",
    "http://*/*",
    "https://*/*",
    "unlimitedStorage"
]
}


popup.js
document.body.onload = function() {
    var obj = chrome.tabs.query({ currentWindow: true, active: true }, function (tabs) {
        var tabId = tabs[0].id;
        chrome.tabs.executeScript(tabId, {code:'var w = window; console.log(w);'});

    });
});

如何将窗口对象从选项卡控制台发送到扩展控制台?

【问题讨论】:

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


    【解决方案1】:

    您可以使用 Node js 来实现您的目标。观看来自Google 的视频。 Link 到存储库。

    【讨论】:

      【解决方案2】:

      chrome.tabs.executeScript有一个回调参数,它的值是脚本的结果(array),所以你可以使用下面的代码来获取当前网页的window对象:

      chrome.tabs.executeScript(tabId, {code:'window;'}, function(results) {
          console.log(results[0]);
      });
      

      【讨论】:

      • 使用这个返回NULL。窗口 == 空
      • @ArtemSolovev,基本上windowwindow.window 指向同一个对象,我不确定window.window 在这里是null,但你可以使用results[0] 作为@987654330 @,不用打results[0].window
      • 没有 localStorage 属性或 sessionStorage。我需要他们
      猜你喜欢
      • 1970-01-01
      • 2021-04-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多