如何将窗口对象从活动选项卡发送到扩展?

时间:2016-06-24 08:01:32

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

我需要从this应用中的某个标签获取用户存储数据(本地和会话)(下面的屏幕)。

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

enter image description here

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

enter image description here

<小时/> 的的manifest.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);'});

    });
});

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

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

chrome.tabs.executeScript有一个回调参数,其值是脚本的结果(数组),因此您可以使用以下代码获取当前的window对象网页:

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