javascript - 找出 DOM 中的哪个框架发起了 postMessage(在 IE11 中)
问题描述
在 JavaScript 中,一旦我收到“消息”事件,有没有办法找出 DOM 模型中的哪个框架启动了它?这在调试大型 Web 应用程序时会很有帮助,其中特定消息可能来自 15-20 帧中的任何一个。message 事件有一个 source 属性,但如果框架是跨域的,则不可访问:
因为我知道这些东西因浏览器而异,所以我专门询问 IE11。
解决方案
我找到了一种即使跨域也能正常工作的方法——我通过在“添加观察”窗口中评估它来添加一个 DOM 元素。然后我在 DOM 树中搜索该元素,并以这种方式找出框架。
例如,此代码有效:
var foo_btn = document.createElement("BUTTON"); var foo_t = document.createTextNode("FOOBAR FOOBAR"); foo_btn.appendChild(foo_t); document.body.appendChild(foo_btn);
您只需单击 Add Watch 并粘贴它,然后在它执行后,您可以FOOBAR FOOBAR
在 DOM 树中搜索。
推荐阅读
- ios - Obj-C - Check arrays within array for value?
- reactjs - 无法将 React 项目添加到 Git 存储库
- python - Python:给定一个二维数组,在没有库导入的情况下检查每行的列数是否相同
- html - 将 h1 块与 p 标签合并?
- ddev - 如何在 DDEV 中将 xdebug 3.0 与 PHP 7.3 或 7.4 一起使用?
- python - 为什么在使用 smart_open 从 s3 读取和写入 s3 时出现 ConnectionResetError?
- typescript - 从 const 数字数组推断元组?
- python - 预测模型之前的数据转换问题 - 未定义名称“文章”
- php - 在 PHP 中显示来自 POST 请求的 JSON 数据
- python - 无法安装 discord.py “无法构建 yarl multidict”错误