如何让我的用户脚本也在隔离沙箱和 unsafeWindow 中执行代码?

2024-04-27

对于我的用户脚本中的大部分代码,我需要使用unsafeWindow对于我的脚本执行的网站。我通过使用来做到这一点// @grant unsafeWindow。但是,我的一些代码无法执行unsafeWindow并且需要在 Tampermonkey 的隔离沙箱中运行。我怎样才能做到这一点?像这样的事情可以工作:

function disableUnsafeWindow() {
    // Disable UnsafeWindow
}

function enableUnsafeWindow() {
    // Enable unsafeWindow
}
function withUnsafeWindow() {
    enableUnsafeWindow()
    // Run the code using unsafeWindow
}

function withoutUnsafeWindow() {
    disableUnsafeWindow();
    // Remove unsafeWindow access and execute the code without unsafeWindow
}

withUnsafeWindow()
withoutUnsafeWindow()

默认情况下,使用带有特权用户脚本函数的隔离沙箱。然后,对于需要使用本机页面的代码,您可以将代码插入到<script>标签,例如:

const fnToRunOnNativePage = () => {
  console.log('fnToRunOnNativePage');
};

const script = document.body.appendChild(document.createElement('script'));
script.textContent = '(' + fnToRunOnNativePage.toString() + ')();';
// to use information inside the function that was retrieved elsewhere in the script,
// pass arguments above
script.remove();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何让我的用户脚本也在隔离沙箱和 unsafeWindow 中执行代码? 的相关文章

随机推荐

  • IBM WebSphere MQ 2042 错误

    我有以下代码 int openOptions MQC MQOO INQUIRE MQC MQOO FAIL IF QUIESCING MQC MQOO INPUT SHARED 执行时 我收到错误 com ibm mq MQExceptio
  • java.lang.NoClassDefFoundError: org/apache/ws/commons/schema/resolver/URIResolver

    我正在尝试创建一个简单的 Hello Web 服务 但收到以下错误 type Exception report message Servlet init for servlet AxisServlet threw exception des
  • Spring 3、Jersey (JSR-311) 和 Maven 依赖项

    我目前正在努力集成基于 Jersey 和 Spring 的 REST 服务 我正在使用 Spring 3 0 2 RELEASE 和 jersey spring 1 2 但是 jersey spring 在我的项目中添加了对 Spring
  • Ruby 中的参数化 get 请求?

    如何创建 HTTPGETRuby 中带参数的请求 这很容易做到 当你POSTing require net http require uri HTTP post form URI parse http www example com sea
  • 使用 Struts 2.2.x 的简单 JSON 示例?

    我在获取 JSON 结果时遇到问题支柱2 2 1 1 http struts apache org 2 2 1 1 index html 有没有人有一个简单的工作示例 可以使用以下命令将 JSON 结果返回到 JSP支柱2 2 1 1并准备
  • 如何重构“字符串类型”代码?

    我目前正在开发一个代码库 其中有几类变量 例如数据库路径 它们简单地表示为字符串 这些 非 类型的大多数操作都在实用程序类中定义 我创建了一个新类来表示数据库 并将操作定义为实例方法 采用传统的 OOP 风格 然而 浏览大型代码库并重构它以
  • ASP.NET MVC4 和 Web API 身份验证 + 授权(Windows 8 和 Web)

    我使用 Simple Membership db 创建了一个 ASP NET MVC 4 Internet Web 应用程序来存储用户 角色和配置文件 在我的应用程序中 我创建了一个 Web API 控制器 它将响应http 127 0 0
  • 并行迭代器

    我正在设计一个 C 数据结构 用于图形 供并行代码 使用 OpenMP 使用 假设我想要一个能够迭代所有元素 节点 的方法 当然 这个迭代将是并行的 是否可以使用迭代器来实现此目的 迭代器应该是什么样子才能实现并行访问 在这种情况下 您会建
  • JavaMail 连接到 Office 365 XOAUTH2 进行 IMAP 身份验证失败

    使用 OAuth2 0 在线 Office365 面临连接问题 我已经设置了应用程序权限以及 IMAP 和 SMTP 连接 基本身份验证似乎工作正常 我相信 IMAP 已启用 我的应用程序配置为任何组织目录 任何 Azure AD 目录 多
  • RSA_public_decrypt 和 MS Crypto API 等效项

    我正在尝试开发许可证验证解决方案 许可证使用 OpenSSL 在服务器上进行编码RSA private encrypt功能 对于 Mac OS X 使用RSA public decrypt它就像一个魅力 在 Windows 上 我必须使用非
  • 如何检查 GAS 中是否存在文件(通过 id)

    我知道有关如何检查文件是否存在的问答by name using hasnext 不过我需要检查一下按文件 ID 最好没有高级 Drive API 披露 我写了一个基于错误处理的解决方案 function ifFileExists id tr
  • numberOfSections 被调用? iOS系统

    跳过所有这些信息并跳至底部的更新 我以前处理过无法识别的选择器 但这次我无法弄清楚发生了什么 调用堆栈是不透明的 我无法找出问题的根源 我尝试过使用符号断点和异常断点 这段代码之前工作得很好 我回来继续处理这个程序 现在遇到了这个 UITa
  • 改变 H2 中的序列

    我在生产中使用 Postgres 数据库 在测试中使用 H2 我想为现有表创建一个新序列 所以在 Liquibase 中我写了这个
  • Webhook 执行错误:Hook 执行成功但返回 HTTP 400 Missing_text_or_fallback_or_attachments

    我正在尝试将 Slack 与 GitLab 集成 我在 slack 中安装了一个 webhook 并将 webhook url 复制到 GitLab 的应用程序集成中 我还在 GitLab 的集成设置中启用了 Slack 集成 但是我不断收
  • 使用heroku.yml部署到Heroku多个docker镜像,收到错误:无法检测到此应用程序的默认语言

    我正在尝试部署一个在本地运行的应用程序docker compose 我遵循了文档 使用 heroku yml 构建 Docker 镜像 https devcenter heroku com articles build docker ima
  • 修复核心数据失败

    我的应用程序商店中有一个使用 Core Data 的应用程序 我必须在明天之前发布更新 但是 我在使用 Core Data 时遇到了一些问题 我错误地更改了 Core Data 中的模型 现在我的应用程序崩溃了 我尝试迁移数据 但当我在 i
  • 如何在项目之间移动 TFS 2010 构建定义?

    我有一些在 ProjectX 下创建的 TFS 2010 构建定义 现在源代码已移至 ProjectY 下属的文件夹中 如何将构建定义移至 ProjectY 以便它们显示在 ProjectY 的团队资源管理器的构建节点下 我认为没有现成的东
  • intellij 中的搜索到处停止工作

    当我在 intellij 中到处搜索时 我只得到我处理过的最新文件 而不是完整的结果 除了重新安装还有什么办法可以解决这个问题吗 尝试使用 Ctrl shift R 吗 这就像到处搜索一样 也允许您替换单词
  • 类数据默认初始化

    我有以下代码 include
  • 如何让我的用户脚本也在隔离沙箱和 unsafeWindow 中执行代码?

    对于我的用户脚本中的大部分代码 我需要使用unsafeWindow对于我的脚本执行的网站 我通过使用来做到这一点 grant unsafeWindow 但是 我的一些代码无法执行unsafeWindow并且需要在 Tampermonkey