从内容脚本访问窗口变量[重复]

2023-11-29

我有一个 Chrome 扩展程序,它试图在每个浏览的 URL(以及每个浏览器 URL 的每个 iframe)上查找变量是否存在window.my_variable_name exists.

所以我写了这个小内容脚本:

function detectVariable(){
    if(window.my_variable_name || typeof my_variable_name !== "undefined") return true;
    return false;
}

经过太长时间的尝试后,内容脚本似乎在某个沙箱中运行。

有没有办法访问windowChrome 内容脚本中的元素?


需要了解的一件重要事情是,内容脚本与当前页面共享相同的 DOM,但它们不共享对变量的访问。处理这种情况的最佳方法是从内容脚本中将脚本标记注入到当前 DOM 中,该标记将读取页面中的变量。

在manifest.json中:

"web_accessible_resources" : ["/js/my_file.js"],

在 contentScript.js 中:

function injectScript(file, node) {
    var th = document.getElementsByTagName(node)[0];
    var s = document.createElement('script');
    s.setAttribute('type', 'text/javascript');
    s.setAttribute('src', file);
    th.appendChild(s);
}
injectScript( chrome.extension.getURL('/js/my_file.js'), 'body');

在 my_file.js 中:

// Read your variable from here and do stuff with it
console.log(window.my_variable);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从内容脚本访问窗口变量[重复] 的相关文章

随机推荐

  • Visual C# 中的“全局变量”

    我已经制作了 Graph 类 我想模拟一个分发网络 该图 100 有效 但是 我想在我的所有应用程序中使用相同的结构 类 例如 我有显示模拟的 Form1 但我想插入节点 例如 但我想在 Form2 中执行此操作 由于数据始终位于同一个类中
  • Flutter 构建 CI 出现错误程序类型已存在:com.google.common.util.concurrent.ListenableFuture

    在 CI CD 中构建 flutter 时出现一些错误 我使用alvrme alpine android android 29作为建设者 我尝试在本地运行它flutter build apk split per abi它运行良好 这是我的a
  • “intaccidents[5]”的声明掩盖了参数错误

    我是 C 新手 找不到任何解决此错误的方法 据我所知 我没有重载任何变量来造成命名冲突 这是我在网上可以找到的最接近原因的事情 任何帮助将非常感激 include
  • 使用 Jquery mobile 的 ListView 中的复选框

    我开始学习 HTML5 和 CSS 使用 Jquery Mobile 因为我在这个领域没有太多背景 所以我陷入了一些非常简单的事情 我想在列表视图中放置一个复选框 在每个里 我怎样才能做到这一点才能看起来像这样 http a4 mzstat
  • 在PyQt5中,如何将普通的QLineEdit(文本框)转换为完美的大写/大写QLineEdit框?

    如何转换我的QLineEdit 入门级大写或全部大写 如果我在文本框 QLineEdit 中输入字符串 它会根据用户定义的方法自动将输入字符串转换或格式化 大写或大写 import sys from PyQt5 QtWidgets impo
  • Visual Studio 初始化时状态栏中出现奇怪的图标

    当我构建项目时 Visual Studio 2015 花了很长时间 状态栏如下所示 该图标是动画的 箭头向下移动 而小盒子落入开放的正方形中 如果我不得不猜测 这意味着 VS 正在尝试下载某些东西 包 但卡在某个地方 这个图标到底是什么意思
  • 如何在 IntelliJ IDE 中将 Spark 与 Scala 项目集成?

    我正在使用 IntelliJ IDE 来玩 Scala 和 Spark 在此 IDE 中 我使用 Scala 对象创建了一个 Scala 项目 见图 我使用了示例回归代码web site 我还以非 Maven 用户身份从 GitHub 下载
  • codeigniter 默认控制器 url 路由

    我正在组建一个简单的网站 并希望 URL 的工作方式与 facebook 类似 因此通过输入 domain com username 我将获得用户个人资料 我已经可以这样做了 登录的用户个人资料位于 domain com 其他用户个人资料位
  • 如何在java中从10到1倒序打印计数?

    我想打印相反的计数顺序 我怎样才能在java中做到这一点 我尝试了一些代码但没有成功 import java util public class reversecount public static void main String arg
  • tkinter 中的标题栏菜单

    我想我们大多数人一定见过命令提示符 Windows 以及当我们打开它并单击它的图标时它会显示一个菜单 我们可以用 tkinter 做类似的事情吗 这不是正常的菜单栏 这是命令提示符之一的说明 这只是一个解决方法的示例 无需您自己进行所有窗口
  • java linkedhashmap迭代

    我有两个哈希图 LinkedHashMap
  • 如何在java应用程序中显示html?

    现在我正在致力于用 Java 实现浏览器 我需要在 JFrame 窗口内显示网站的内容 提供 url 地址 有没有一种简单的方法可以做到这一点 我尝试了JEditorPane 但它只支持HTML 3 2 所以网站的内容看起来很奇怪 Than
  • Java - 连接关闭后无法使用 ResultSet

    我在关闭与 MySQL 的连接时遇到问题 我收到错误 java sql SQLException 结果集关闭后不允许执行操作 My code public static ResultSet sqlquery String query Res
  • 依赖注入和实体框架

    我正在使用 MVVM light 及其 Ioc 来做一个 wpf 应用程序SimpleIoc 我实现了这样的存储库模式 public interface ICrud
  • 解释双重检查锁定中的竞争条件

    void undefined behaviour with double checked locking if resource ptr 1 std lock guard
  • C# - 文件上传到服务器后损坏

    我使用以下源代码上传文件excel和pdf 但是将文件移动到服务器后 文件已损坏 我认为问题出在编码过程上Encoding UTF8 GetBytes sourceStream ReadToEnd 但我不知道如何解决 public stat
  • 在 Android 中启动 GPS 设置屏幕

    以下代码在三星设备中启动 GPS 设置屏幕 但在 HTC 设备中启动设置的安全屏幕 我如何编写代码 以便它独立于设备启动 GPS 屏幕 请帮助是否有任何替代解决方案 final ComponentName toLaunch new Comp
  • SQL 错误:ORA-00942 表或视图不存在

    我使用 SQL Developer 在创建用户并使用所有所需权限与该用户建立另一个连接后 使用系统用户与数据库建立了连接 但是当我尝试继续以下操作时 出现 SQL 错误 ORA 00942表或视图不存在 INSERT INTO custom
  • 创建每列有多个标题的数据框并在循环中填充数据框

    我想创建一个每列有多个标题的 Pandas 数据框 并使用循环中的数据逐行填充数据框 我以前创建过数据框 但这对于我真正想做的事情来说似乎非常复杂 而且我不知道从哪里开始 Example step list range 1 5 for i
  • 从内容脚本访问窗口变量[重复]

    这个问题在这里已经有答案了 我有一个 Chrome 扩展程序 它试图在每个浏览的 URL 以及每个浏览器 URL 的每个 iframe 上查找变量是否存在window my variable name exists 所以我写了这个小内容脚本