【问题标题】:Reading Google Chrome variable from web page从网页读取 Google Chrome 变量
【发布时间】:2012-01-19 15:35:07
【问题描述】:

我需要能够从任何网页读取 google chrome 扩展程序上设置的变量。

例如,在 Firefox 扩展上,我正在这样做:

XPCNativeWrapper.unwrap(contentWindow).myExtensionName_varName = "value";

然后在任何网页上,如果我执行alert(myExtensionName_varName);,我就会得到正确的值。

如何在 chrome 扩展上实现同样的功能?

【问题讨论】:

    标签: javascript google-chrome google-chrome-extension global-variables chromium


    【解决方案1】:

    为了安全和避免冲突,Chrome 中的所有内容都经过沙盒处理,因此您无法从扩展程序直接访问由网站脚本创建的任何变量。

    内容脚本在称为孤立世界的特殊环境中执行。他们可以访问被注入页面的 DOM,但不能访问页面创建的任何 JavaScript 变量或函数。它查看每个内容脚本,就好像它正在运行的页面上没有执行其他 JavaScript。反之亦然:页面上运行的 JavaScript 不能调用任何函数,也不能访问内容脚本定义的任何变量。 [source]

    查看“与嵌入页面通信”部分here,了解如何在网页脚本和扩展内容脚本之间进行通信。

    【讨论】:

    • 请检查我的问题,我不想从扩展程序中读取任何网站脚本,我想做相反的事情。
    • 我明白,它是双向的。网站脚本不允许直接读取和操作扩展变量。您必须通过事件进行交流 - 检查提到的“与嵌入页面的交流”部分。
    • 没关系,你的内容脚本不能直接和你的扩展通信。这应该可以进一步帮助您:code.google.com/chrome/extensions/messaging.html
    • 我已经检查了那个页面,但我真的不明白如何向普通网站发送消息,我尝试了一些示例,但我认为我做得不好,有吗另一个页面有更清晰的例子?
    • 好的,我知道了,我使用的是 tabs[index],而我不得不使用 tabs[index].id
    猜你喜欢
    • 2014-05-19
    • 2017-07-04
    • 1970-01-01
    • 2021-03-20
    • 2012-03-25
    • 1970-01-01
    • 2010-11-29
    • 1970-01-01
    相关资源
    最近更新 更多