首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何让我的用户脚本在隔离的沙箱和unsafeWindow中执行代码?

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

Stack Overflow用户
提问于 2021-01-03 08:01:03
回答 1查看 64关注 0票数 2

对于我的用户脚本中的大多数代码,我需要在我的脚本执行的网站上使用unsafeWindow。我通过使用// @grant unsafeWindow来实现这一点。然而,我的一些代码不能在unsafeWindow中执行,需要在坦帕猴子的隔离沙箱中运行。我怎么才能做到这一点呢?像这样的东西可能会起作用:

代码语言:javascript
复制
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()
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-01-03 08:06:43

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

代码语言:javascript
复制
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();

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65545401

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档