获取对父 IFRAME 的引用

2023-11-21

假设我有一个对包含在 IFRAME 内的文档对象的引用。如何获取对容器 IFRAME 的引用? .parentNode 和 .ownerDocument 都返回 null。

请注意,没有可用的上下文信息(例如“window.xxx”等解决方案将不起作用) - 所有可用的都是对文档对象的引用。

Thanks


文档不直接与其父文档相关。您确实需要参考window为了拿起parent.

DOM Level 2 Views 属性document.defaultView会给你window在大多数现代网络浏览器中,但在 IE 中你必须使用非标准document.parentWindow反而。 (一些较旧的或更不起眼的浏览器不实现这些属性中的任何一个,在这种情况下您就会陷入困境。)

这会给你window父文档的。如果您想获得<iframe>保存您的文档,您必须遍历页面上的所有 iframe 并检查所包含的文档是否是您自己。

同样,从 iframe 元素返回到子元素的方法在 IE 中是完全不同的(iframe.contentWindow给你window) 与 DOM 标准和其他标准 (iframe.contentDocument给你document).

所以,像这样:

function getFrameForDocument(document) {
    var w= document.defaultView || document.parentWindow;
    var frames= w.parent.document.getElementsByTagName('iframe');
    for (var i= frames.length; i-->0;) {
        var frame= frames[i];
        try {
            var d= frame.contentDocument || frame.contentWindow.document;
            if (d===document)
                return frame;
        } catch(e) {}
    }
}

(The try...是为了避免当文档访问由于另一个 iframe 位于不同域上而失败时导致循环崩溃,从而导致同源策略错误。)

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

获取对父 IFRAME 的引用 的相关文章

  • 在 TCPDF 中设置背景颜色

    我已经手动设置了第一页的背景颜色 如下所示 pdf gt AddPage pdf gt SetFillColor 52 21 0 76 pdf gt Rect 0 0 pdf gt getPageWidth pdf gt getPageHe
  • 如何获取 RxJSSubject 或 Observable 的当前值?

    我有 Angular 2 服务 import Storage from storage import Injectable from angular2 core import Subject from rxjs Subject Inject
  • 在 asp.net vb 中通过第一个下拉列表值填充第二个下拉列表

    我在使用 asp net vb 时遇到了一些问题 我想做的是有2个下拉框 第一个下拉菜单将有 1 2 3 例如 第二个下拉菜单将有 A 乙 C 默认情况下 但是 如果选择 1 我希望第二个下拉菜单自动选择 c 我不知道 JavaScript
  • 如何在 Node.js 中让一个 EventEmitter 监听另一个 EventEmitter?

    我想做这样的事情 var events require events var emitterA new events EventEmitter var emitterB new events EventEmitter emitterA ad
  • JavaScript 变量赋值与 OR 对比 if 检查[重复]

    这个问题在这里已经有答案了 在 JavaScript 中 我最近意识到你可以使用 OR 赋值的逻辑运算符 我想知道这是否被认为是不好的做法 特别是 我有一些具有可选数组输入的函数 如果输入是null or undefined我应该将它设置为
  • 我的 iPhone 6 获取 iPhone 5 媒体查询

    我不明白这里发生了什么事 我在 CSS 媒体查询中专门针对 iphone 5 media only screen and min device width 320px and max device width 568px some div
  • 为什么将数据存储为元素的属性存在风险?

    我一直在读同样的东西 直接在 DOM 元素上存储属性值是有风险的 因为可能会发生内存泄漏 但有人可以更详细地解释这些风险吗 按属性 我假设您指的是 DOM 元素上的属性 DOM 元素上的自定义属性安全吗
  • 在 Angular2 项目中集成 Treant-js

    我正在尝试在 Angular2 项目中使用 treant js 但我正在努力解决如何正确集成它的问题 我有一个工作正常的 JavaScript HTML 示例 我正在尝试在 Angular2 中工作 我创建了一个组件 从 npm 添加了 t
  • Telegram 授权无默认按钮

    使用 Telegram 第 3 方授权的唯一有记录的方法是使用其提供的脚本https core telegram org widgets login https core telegram org widgets login 这个脚本 正如
  • 专用网络:web3.eth.getAccounts() 始终发送空数组

    我正在运行一个私人以太坊网络 我确实用https aws amazon com blockchain templates 整个设置已经完成 AWS 上的设置看起来正确 现在 我正在尝试创建帐户并检索所有这些帐户 为此 我使用以下方法 Web
  • Chrome Javascript 调试器暂停时不会重新加载页面

    有时 当我在 Chrome 中调试某些 javascript 并且暂停了 javascript 时 如果我尝试重新加载页面 chrome 只会 继续 调试器 单步执行到下一个断点 似乎没有任何方法可以强制 javascript 完全停止运行
  • setInterval 内的返回值

    我想在 setInterval 内返回一个值 我只想以一定的时间间隔执行一些操作 这就是我尝试过的 function git limit var i 0 var git setInterval function console log i
  • Postman - 如何计算 JSON 响应中特定对象的出现次数

    我是 JSON 和 Postman 的新手 我相信我正在尝试做一些非常简单的事情 我创建了一个 GET 请求 它将获得如下所示的 JSON 响应 在下面的例子中我想得到count响应中所有 IsArchived 属性 这些属性的数量因响应而
  • 理论上防止 WebSocket 中第一个收到的消息丢失

    服务器端代码发送消息立即地连接打开后 它向客户端发送初始配置 问候语 以下代码是在客户端 var sock new WebSocket url sock addEventListener error processError sock ad
  • 为什么我需要 $(document.body) 来使用 Mootools Element 方法扩展 document.body?

    因此 在尝试让我的应用程序在最新的 IE 上运行后 结果发现 IE 不喜欢以下代码 document body getElement className Firefox 和 Chrome 响应良好 但是document bodyIE 上没有
  • 使用文本遮盖视频

    是否可以使用 HTML CSS 文本来屏蔽视频 我已经找到并设置了这种工作方式 但没有一种允许文本后面有透明背景 例如 这支笔要求您进行某种填充 它并不是真正掩盖实际视频 而是创造幻觉 https codepen io dudleystor
  • 在声明组件选择器时添加指令 - Angular 7

    我正在学习 Angular 并通过单击按钮动态创建组件 我正在尝试使用 Angular Material 的拖放功能来拖动这些创建的组件以对它们进行排序 我的基本组件 html 中有以下代码 div style margin 20px di
  • 如何在 JavaScript 中获取浮点数的小数位?

    我想要的是与 Number prototype toPrecision 几乎相反的 这意味着当我有数字时 它有多少位小数 例如 12 3456 getDecimals 4 对于任何想知道如何更快地完成此操作 无需转换为字符串 的人 这里有一
  • FullCalendar 检查选择日是否有活动?

    我正在使用 Full Calendar js 插件 到目前为止一切顺利 但我想检查开始和结束之间的选择是否有事件 我只需要返回 true 或 false 基本上 如果日期选择中已经存在事件 我想阻止用户创建事件 var calendar c
  • Bootstrap 3 多个导航栏

    我在 Twitter Bootstrap 3 中的多个引导程序中遇到问题 第一个导航栏可以正常调整大小和响应 第二个导航栏在正常分辨率下无法正常工作 但是当我尝试调整大小以响应并调整大小后 它可以正常工作 这是一些代码

随机推荐

  • React propType 无法读取未定义的属性

    使用 propTypes 验证 props 会出现以下错误 类型错误 无法读取未定义的属性 字符串 类型错误 无法读取未定义的属性 func 有问题的代码位于代码片段的底部 import React from react import Pr
  • 如何将 Google 地图地点库的自动填充功能限制为仅建议一个城市的地点?

    我目前正在使用给定的代码 但这仅将建议限制在一个国家 地区 我见过一种实现 但它使用 jQuery 我想在不使用 jQuery 的情况下实现它 var input document getElementById searchTextFiel
  • 如何在不在 @INC 的目录中“使用”Perl 模块?

    我的脚本的父目录中有一个模块 我想 使用 它 If I do use Foo pm 我收到语法错误 我尝试这样做 push INC use EPMS 并且 显然没有出现在 INC中 我要疯了 这是怎么回事 use发生在编译时 所以这可以工作
  • 单个 Django 模型,多个表?

    我知道以前曾问过这个完全相同的问题 但我希望得到一个 更好 的答案 不涉及在运行时修改类属性 这是问题 单个 Django 模型 多个表 我有同样的问题 我正在寻找类似于响应者的第一个回复的解决方案 但这实际上有效 如果没有更好的解决方案
  • 如何在服务器端安排PHP脚本的执行?

    我需要一个在特定时间自动执行的 PHP 脚本 我将如何实现这个目标 如果您运行的是 Linux Unix 包括 Mac OSX 创建一个 cron 作业 如果您运行的是 Windows 创建计划任务 Note 上述两个链接都专门针对 PHP
  • std::sort 类中的比较函数无法编译

    我正在编写一个程序来获得凸包 我需要按极角对点进行排序 我选择了base之前指出 所以我编写了一个成员比较函数 请注意 对于每个对象base点不同 但是当我将它应用到std sort 程序无法编译 这是我的程序 class ConvexHu
  • 翻译自定义 jQuery 验证消息

    我有一个关于 jQuery 验证的问题要问plugin 我已使用本地化来更改以西班牙语显示的错误消息的默认语言 但我找不到有关要翻译的自定义消息的任何内容 有什么线索吗 例如 我已经包含了西班牙语的翻译文件 这是我的代码 signup fo
  • 如何在Python中将for循环转换为并行处理?

    我仍处于学习 Python 的早期阶段 如果这个问题听起来很愚蠢 请提前道歉 我有这组数据 以表格格式 我想向其中添加一些计算列 基本上我有一些位置经度 纬度和目的地经度 纬度 以及各自的数据时间 并且我正在计算每对之间的平均速度 示例数据
  • 如何在没有singleTop的情况下使用Android SearchView?

    我有一个 Activity 通常希望存在于多个任务中 以便 后退 按钮恢复之前的状态 不过 我也想用一个搜索视图与现有的活动 而不将新的活动推入任务堆栈 因为我想搜索当前显示的内容 这是我的问题 如果我将 Activity 的启动模式设置为
  • AngularJS [$injector:unpr] 未知提供者

    我正在尝试将服务注入控制器 但出现以下错误 Error injector unpr Unknown provider employeeServiceProvider lt employeeService http errors angula
  • PHP 对象与数组——迭代时的性能比较

    我有大量用于神经网络的 PHP 对象 我必须对其进行迭代并执行一些数学运算 我想知道在类实例上使用关联数组是否会更好 我正在处理周围3640对象并迭代500次 最多 因此任何微观优化都有很大帮助 这样做必然会更快吗 object value
  • PHP 显示来自 MySQL 的图像 BLOB [重复]

    这个问题在这里已经有答案了 我正在尝试显示存储在数据库中 BLOB 列中的图像 我使用 SELECT 从数据库中获取数据 不对数据执行任何转换 并使用以下内容显示它 来自唯一输出如下的脚本 header Content Type image
  • Windows Phone 7 关闭应用程序

    是否有可能以编程方式关闭 Windows Phone 7 上的 Silverlight 应用程序 如果您编写 XNA 游戏 您将可以访问显式的Exit 方法 如果您正在编写传统的 Silverlight 项目 那么NO 无法以编程方式关闭您
  • 在 defer 函数内部发生恐慌是否可以,特别是当它已经发生恐慌时?

    func sub defer func panic 2 panic 1 func main defer func x recover println x int sub 我尝试了这段代码 这似乎是第一次恐慌panic 1 只是被第二次恐慌
  • 改造关闭响应体

    我一直收到这个错误 A connection to was leaked Did you forget to close a response body 所以我继续关闭我收到的回复 response body close 问题是 如果 re
  • 与其他禁用的 TextBox 相比,c# TextBox 被禁用时边框会发生变化

    我有一个非常奇怪的问题 我有多个用于用户名 密码的文本框 以及每个用户 密码组旁边的复选框 当用户单击复选框时 如果他选中了它 则其旁边的用户名和密码文本框将被启用 并且焦点将设置为用户名文本框 如果用户取消选中复选框 则其旁边的文本框将被
  • Laravel Blade 使用 $(document).ready 函数

    我正在尝试使用 laravel Blade 模板 包括一些 javascript 代码到子视图中 我有我的邮件应用程序 blade php文件 其中放置 jquery 初始化字符串 在我的子视图文件中设置 blade php我想使用一些 j
  • 实体框架 - 荒谬的查询,将smallint转换为int以进行比较[重复]

    这个问题在这里已经有答案了 这里没有想法了 我有一个简单的表 模型首先与实体框架映射 并生成以下 SQL p linq 0 int p linq 1 int SELECT Extent1 BucketRef AS BucketRef Ext
  • 重复数据框的行

    我正在尝试重复数据框的行 这是我的原始数据 pd DataFrame col1 1 col2 11 col3 1 2 col1 2 col2 22 col3 1 2 3 col1 3 col2 33 col3 1 col1 4 col2 4
  • 获取对父 IFRAME 的引用

    假设我有一个对包含在 IFRAME 内的文档对象的引用 如何获取对容器 IFRAME 的引用 parentNode 和 ownerDocument 都返回 null 请注意 没有可用的上下文信息 例如 window xxx 等解决方案将不起