是否有办法将 javascript 代码注入到 iframe 中执行,而无需删除并重新附加包含它的脚本标记?

2023-12-19

Context:

我正在构建一个实时 HTML、CSS 和 Javascript 编辑器。 可以访问到here http://experiments.muditameta.com/qckmeddler/.

源码可以访问here https://github.com/zeusdeux/qckMeddler.

问题:

是否可以运行注入到 iframe 中的 javascript 代码,而无需重复删除和添加包含来自 DOM 树的代码的

Thanks!


如果您不介意使用evil eval https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/eval,您可以重新评估 iframe 窗口中的大多数 JavaScript,例如

function someFunction(){                                // any function
    console.log(document.body.children);
}

someFunction();                                         // see normal output

var ifrm  = document.getElementsByTagName('iframe')[0], // your iframe
    iwind = ifrm.contentWindow;                         // the iframe's window

iwind.eval( someFunction.toString() );                  // re-evaluate function with eval from iframe
iwind.someFunction();                                   // see new output - output is in iframe's context

比较

iwind.someFunction = someFunction;                      // set variable
iwind.someFunction();                                   // same as calling someFunction() from parent

它应该适用于大多数有效的 JavaScript(考虑范围),但请注意using eval可能会很糟糕 https://stackoverflow.com/questions/86513/why-is-using-the-javascript-eval-function-a-bad-idea.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

是否有办法将 javascript 代码注入到 iframe 中执行,而无需删除并重新附加包含它的脚本标记? 的相关文章

  • 有没有办法从 PhantomJS 的键盘读取用户输入?

    我使用 PhantomJS 登录网站 必须手动输入验证码 如何将验证码图像保存到磁盘 然后在 PhantomJS 控制台中手动输入验证码 我遇到了同样的问题 只需将系统模块与 page render 和一些传递给 page evaluate
  • 禁用外部点击时关闭模式

    我正在制作一些使用模式的博客物质化 但我的模态 onclick 外部和错误数据有问题 这是我的代码 main js function changepassword var user userlog val var content conte
  • Javascript 闭包 - 变量范围问题

    我正在阅读 Mozilla 开发者网站上有关闭包的内容 我注意到在他们的常见错误示例中 他们有以下代码 p Helpful notes will appear here p p E mail p
  • 为什么我的事件处理程序会导致“不是函数”错误,但可以在 Firebug 控制台中运行?

    使用JQuery 1 2 6 在Firefox 3和IE7上进行测试 我有一些非常基本的 JavaScript 代码来重新加载验证码图像 在我的 JS 文件中 我有 var Captcha count 0 Refresh function
  • 使用非常大的背景位置偏移是否存在性能问题?

    我正在构建一个进度条控件 并且正在研究它实际上并不显示进度 而只是旋转 正在发生某事 的指示器的情况 我的设计基本上是交替的对角条纹 本质上是一个像这样的理发杆 但是 旋转 由于希望将尽可能多的负载转移给渲染引擎 我想为此使用 CSS 过渡
  • Javascript:使用 IIFE 和块语句之间的区别

    IIFE主要用于封装作用域 function let myVar 10 not global 但为什么不直接使用块语句呢 let myVar 10 also not global 除了范围封装之外 进一步使用 IIFE 是否还有其他好处 块
  • CryptoJS 使用密码加密 AES,但 PHP 解密需要密钥

    我在用CryptoJS https code google com p crypto js AES加密字符串 function doHash msg msg String msg var passphrase aggourakia var
  • 在 Cordova 中合并文件的多个部分

    在我的 Cordova 应用程序中 我正在下载任意文件 例如图像或视频文件 这是通过 Cordova 文件传输插件和 Range 标头完成的 因为我需要分段下载文件 我的问题是 我想将几 个小 字节 文件合并回原来的文件中 他们曾经在其中使
  • 个人 Tumblr 帖子上的 Javascript

    我知道您可以编辑在 tumblr 博客上呈现所有帖子博客主页的 html AngularJS 但是 有什么办法可以添加自定义到各个帖子 我想在逐个帖子的基础上做一些 javascript 的东西 但似乎无法找到可以编辑代码的位置 或者 如果
  • 如何将本地文本文件上传到文本区域(网页内)

    我是一名新手程序员 需要一些帮助来弄清楚如何将本地文本文件上传到我正在构建的网站内的文本区域 我非常精通 HTML CSS 对 Javascript JQuery 有相当的了解 而且我刚刚学习 PHP 您能提供的任何帮助我将不胜感激 我有一
  • 如何防止输入文本中出现“后重音”

    我相信这是一个简单的问题 但在谷歌上搜索几个小时后我找不到任何答案 也许我无法在搜索中使用正确的单词 P 我有一个 javascript 方法 可以防止用户用数字以外的其他字符填充文本框 如下面的代码所示 它在 KeyDown 事件中使用
  • Angular 2 将字符串转换为 md5 哈希

    我找到了ts md5 https www npmjs com package ts md5包 但在示例中它有一个hashStr方法 但现在不行了 类型上不存在属性 hashStr Md5 使用该错误后 该错误会记录在我的控制台中 我怎样才能
  • JQuery $.ajax() 在 java servlet 中发布数据

    我想将数据发送到 java servlet 进行处理 数据将具有可变长度并采用键 值对 A1984 1 A9873 5 A1674 2 A8724 1 A3574 3 A1165 5 数据不需要这样格式化 这就是我现在的方式 var sav
  • 在循环中调用 setTimeout 未按预期工作

    下面的 JavaScript 应该 在我看来 以 0 5 秒的间隔播放一系列音符 但它会将它们全部作为一个同时的和弦来演奏 知道如何修复它吗 function playRecording if notes length gt 0 for v
  • 如何使用 NextJS 使用自托管字体face?

    使用 NextJS 的字体 我已经阅读了有关如何在 NextJS 中使用自托管字体的不同主题 我得到了什么 wait compiling 当我这样做时 font face font family montserrat src url myp
  • 此版本的 CLI 仅与 Angular 版本 5.0.0 或更高版本兼容错误

    我已经有 Angular 项目在 4 版本中运行 在安装新项目时 不幸的是我安装了 6 版本的 Angular cli 在以 4 版本运行的旧项目中运行 ngserve 命令时 这会引发错误 您的全局 Angular CLI 版本大于本地版
  • 如何将项目插入到特定索引处的空数组中?

    我想将一个项目插入到空数组的指定索引中 我看到有 Array prototype splice 方法 但是 如果我在空数组上使用 splice 它只会添加项目来结束数组 如下所示 var a a splice 3 0 item 3 cons
  • 如何使用 fetch() 和 WhatWG 流获取文件上传进度

    注意 我并不是在寻找任何替代方案 我知道这可以通过 XMLHttpRequest 来完成 我也不关心浏览器支持 我只想了解新的 即将推出的标准 我有一个File https developer mozilla org en US docs
  • 如果 jquery 验证激活,如何在单选按钮中放置红色边框[重复]

    这个问题在这里已经有答案了 我的问题是 如果 jquery 验证像示例图片中那样激活 我无法使单选按钮具有红色边框 任何人都可以帮我解决这个问题吗 http i38 photobucket com albums e149 eloginko
  • 如何将数据推送到嵌套对象

    如何将另一个元素推入variables来自以下对象的属性 var request name Name id 3 rules name Rule name tags tagId 1 variables variable var1 matchT

随机推荐

  • 如何自动启动/预热 IIS 中托管的 .net core Web 应用程序

    我有一个 net core 3 1 Web 应用程序 托管在 IIS 上 我无法弄清楚如何在第一个请求之前运行一段代码 我做了以下事情 设置应用程序池的 启动模式 AlwaysRunning 和 空闲超时 0 在网站上设置 预加载已启用 t
  • 有关 SP 和 UDF 的帮助吗?

    我正在尝试通过 MySQL 和 PHP 学习和使用 SP 存储过程 和 UDF 用户定义函数 SP和UDF有什么区别 用途是什么 一段简单的代码在 PHP 和 SQL 中会是什么样子 其中 SP 正在更新 写入或从 MySQL 数据库的表中
  • 为什么应用程序通常不使用 int 在内部表示货币值?

    为什么应用程序通常不使用整数数据类型 例如int or long在 C Java C 中 在内部表示货币值 而不是使用浮点数据类型 float double 或者类似Java的BigDecimal 例如 如果我正在编写一个 Java 应用程
  • 在移动 safari 中是否有使用 onbeforeunload 的替代方法?

    在 mobile safari 中是否有替代方法可以代替 onbeforeunload 我注意到 Google 能够捕获onbeforeunloadmobile safari 中的事件 有谁知道他们是怎么做到的吗 谷歌能够使用他们的 Gma
  • 在heroku上使用node.js开发时钟和workers

    我正在开发一项服务 需要每五分钟为不同的用户分析来自社交媒体网络的数据 我正在使用 node js 开发它 并将在 Heroku 上实现它 根据本文 https devcenter heroku com articles scheduled
  • 用于 mysql 的多个 docker 容器或一个具有多个数据库的实例

    我有一个关于使用 docker 容器的最佳实践的问题 我开发的每个应用程序都需要一个数据库 现在我的问题是我是否应该使用一个内部有多个数据库的 mysql docker 实例 还是应该为每个数据库创建一个实例 我发现为每个数据库创建一个实例
  • 网格布局内的中心列[重复]

    这个问题在这里已经有答案了 我已经开始学习网格系统 显示 网格 并且我有以下代码 但我不知道如何将最后两列 4和5 居中而不在网格模板列中添加更多列并使用网格列中的 column start 和 grid column end 是否可以 H
  • R 中逻辑回归的混淆矩阵

    我想使用我的训练数据和测试数据计算逻辑回归的两个混淆矩阵 logitMod lt glm LoanStatus B data train family binomial link logit 我将预测概率的阈值设置为 0 5 confusi
  • 枚举中定义的项目总数

    如何获取枚举中定义的项目数 您可以使用静态方法Enum GetNames https msdn microsoft com en us library system enum getnames它返回一个数组 表示枚举中所有项目的名称 该数组
  • Java 继承 - this 关键字

    我在网上搜索了类似的问题 但没有找到 所以 在这里发帖 在下面的程序中 为什么 i 的值被打印为100 AFAIK this 指的是当前对象 在本例中是 TestChild 并且类名也被正确打印 但为什么实例变量的值不是200呢 publi
  • 无论旋转如何锁定方向

    我有一个UITabBar嵌入式应用UINavigation对于一些观点 在一个特定的导航视图上 我显示图形 图表 最好将它们显示在landscape就像 iPhone 向左或向右旋转一样 该应用程序的其余部分更适合纵向 因此 我想 强制 包
  • WPF DataGrid 好的教程吗? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 有人可以向我指出互联网上优秀的 WPF DataGrid 教程吗 这些都是很好的 第二个是旧的 但仍然足够好 www wpftutoria
  • 退出命令行程序的首选方式是什么?

    这应该很简单 我只需要简单地退出我的命令行 C 程序 没有什么花哨的东西 我应该使用 Environment Exit or this Close 或者是其他东西 刚刚从Main method Edit 如果您确实失去了流程并希望从应用程序
  • 从 Elasticsearch 返回父数据和子文档

    是否可以通过在 Elasticsearch 查询中搜索子文档来返回父数据 我有两种文档类型 例如书籍和章节 作为父 子相关 非嵌套 我想对子文档运行搜索并返回子文档以及父文档中的一些字段 我试图避免对父级执行单独的查询 Update 我能找
  • 无法通过JAVA连接到HIVE2

    Referring to Hive2 https cwiki apache org confluence display Hive HiveServer2 Clients HiveServer2Clients JDBC created a
  • iPhone / iOS Facebook SDK - 您可以在应用程序内登录并保留登录凭据吗?

    是否可以使用 Facebook iOS SDK 在应用程序内进行身份验证 而不是转到 Safari 并保留这些身份验证凭据以供下次启动应用程序时使用 当我尝试在模拟器中使用演示应用程序时 它总是转到 safari 进行身份验证 这看起来有点
  • WPF UIElement.IsHitTestVisible=false;还在回击吗?

    我从 FrameworkElement 派生一个控件以用作 VisualCollection 的容器 因为我正在使用 DrawingVisuals 进行大量自定义渲染 创建游戏地图 我的容器有几个不同的实例 彼此层叠 我只想命中测试影响当前
  • 在什么条件下单位是一种类型?

    在此被标记为重复之前 我知道这个问题与使用单位作为类型参数时有关编译错误的各种问题有关 一些例子 Why is unit用作通用接口参数时 F 类型系统会以不同方式对待吗 https stackoverflow com q 26296401
  • 自动解码 TRESTResponse 中的 GZIP?

    似乎不可能为 TRESTClient 分配压缩器或拦截 如果我将 TRESTRequest AcceptEncoding 设置为 gzip deflate 我会收到来自支持 gzip 的服务器的 gzip 编码响应 然而 在 TIdHTTP
  • 是否有办法将 javascript 代码注入到 iframe 中执行,而无需删除并重新附加包含它的脚本标记?

    Context 我正在构建一个实时 HTML CSS 和 Javascript 编辑器 可以访问到here http experiments muditameta com qckmeddler 源码可以访问here https github