【发布时间】:2015-12-15 04:23:48
【问题描述】:
任何人都可以发布用于访问 chrome 扩展中的窗口变量的代码。 当我单击 chrome 扩展按钮时,我需要访问窗口变量。 我正在获取窗口对象,但没有加载所有变量。 我知道我们可以通过注入脚本来创建它。但我不知道如何实现它。 目前我正在尝试以下代码来获取当前活动选项卡的页面源。
chrome.tabs.executeScript({code:
"document.getElementsByTagName('html')[0].innerHTML"
}, function(result) {
var value = result[0];
console.log(value);
chrome.tabs.query({currentWindow: true, active: true}, function(tabs) {
callback({
url: tabs[0].url,
title: tabs[0].title,
jsonValue: value
});
});
});
请帮我解决这个问题。将不胜感激。
【问题讨论】:
-
你现在用这个脚本得到了什么?什么时候执行?
-
@EmrysMyrooin,我正在获取当前选项卡的页面源。但是我需要获取页面源中的所有窗口变量
-
那么为什么不直接返回
window对象呢?比如chrome.tabs.executeScript({code: "window" }, function(result) { ... })我没试过,但没有理由不工作:-) -
如果问题是如何获取源页面的所有 javascript vraiables,Google 的官方回答是:你不能。但我认为这不是你想要的。
-
Okey 忘了这个。发送
windowvariable 没有简单的解决方案。原因是它包含无法以 JSON 格式表示的循环引用。因此,您拥有的更好的解决方案是从window对象中提取想要的值,然后只发回这些提取的值。或者您可以尝试使用 JSON 以外的其他格式来表示您的数据,但为此您必须注入一个外部库...
标签: javascript google-chrome-extension