BT9034: 仅 IE 和 Opera 支持 HTMLFrameElement 和 HTMLIFrameElement 的 document 属性

标准参考

根据 DOM-2 中的描述,HTMLFrameElement 和 HTMLIFrameElement 都没有 ‘document‘ 属性。

关于 HTMLFrameElement 对象的详细信息,请参考 DOM-2 Interface HTMLFrameElement 中的内容。

关于 HTMLIFrameElement 对象的详细信息,请参考 DOM-2 Interface HTMLIFrameElement 中的内容。

问题描述

仅 IE Opera 支持使用 HTMLFrameElement.document 和 HTMLIFrameElement.document 属性得到框架页的 HTMLDocument 对象。这个属性是非标准的。

造成的影响

如果试图通过 HTMLFrameElement 和 HTMLIFrameElement 对象的 ‘document‘ 属性获得框架页的 HTMLDocument 对象,在 FrireFox Chrome Safari 中将得到 ‘undefined‘。

受影响的浏览器

IE6 IE7 IE8 Opera

问题分析

分析以下两组测试代码,他们分别尝试获取 HTMLFrameElement 和 HTMLIFrameElement 的 ‘document‘ 属性:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<script>
window.onload=function(){
  alert(document.getElementById("frame").document);
};
</script>
</head>
<frameset>
  <frame id="frame" src="_content.html" />
</frameset>
</html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<script>
window.onload=function(){
  alert(document.getElementById("iframe").document);
};
</script>
</head>
<body>
  <iframe id="iframe" src="_content.html"></iframe>
</body>
</html>

以上测试用例中,只有 IE6 IE7 IE8 Opera 对两者均会得到一个 HTMLDocument 对象(即框架内页面的 document 对象),而其他浏览器返回的是 ‘undefined‘。

注:以上测试与文档模式无关。

解决方案

使用 HTMLFrameElement 或 HTMLIFrameElement 对象的 contentWindow 属性得到该框架页的 window 对象应用,再访问其下的 document 对象。

即把上述测试代码的 ‘XXX.document‘ 更改为 ‘XXX.contentWindow.document‘,如:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<script>
window.onload=function(){
  alert(document.getElementById("iframe").contentWindow.document);
};
</script>
</head>
<body>
  <iframe id="iframe" src="_content.html"></iframe>
</body>
</html>
时间: 2024-08-06 09:40:18

BT9034: 仅 IE 和 Opera 支持 HTMLFrameElement 和 HTMLIFrameElement 的 document 属性的相关文章

RF1001: 各浏览器对 &#39;@font-face&#39; 规则支持的字体格式不同,IE 支持 EOT 字体,Firefox Safari Opera 支持 TrueType 等字体

http://w3help.org/zh-cn/causes/RF1001 http://blog.csdn.net/agileclipse/article/details/12450949 http://www.zhaozi.cn/html/fonts/  字体网 作者:陆远 标准参考 根据 CSS3 草案中的描述,'@font-face' 规则允许使用链接到需要时自动激活的字体.这使得用户可以使用在线的字体,而不仅仅拘泥于使用用户端系统内的字体.一套对字体的描述定义了字体资源的位置,可以是本

让ie6(opera)支持微软雅黑字体

一直很喜欢微软雅黑字体,这也算是因个人审美的问题吧,最近在捣腾一些东西,竟然发现IE6和Opera浏览器对CSS中设置微软雅黑字体不感冒,纠结了一上午,终于找到了解决办法,如何让Opera和IE6支持微软雅黑呢?其实解决办法非常简单: 一.让IE6支持微软雅黑,添加一句声明: <html  lang="zh-CN"> 在网页的HTML标签内加入红色部分的声明,就可以了.框架资源分享 二.让Opera浏览器支持微软雅黑,通过CSS兼容性补救来实现: CSS代码: font-f

WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了

原文:WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 如果你写了一个 MarkupExtension 在 XAML 当中使用,你会发现你在 MarkupExtension 中定时的属性是无法使用 XAML 绑定的,因为 MarkupExtension 不是一个 DependencyObject. 本文将给出解决方案,让你能够在任意的类型中写出支持 XAML 绑定的属性:而不一定要依赖对象(DependencyObj

html5中不再支持table的cellspacing和cellpadding属性

如果你现在开始用html5的声明来写页面时,你会发现在定义table的cellspacing和cellpadding时被提示该属性已过时或者提示非法属性.具体原因是在html5中table标签的这两个属性已经被移除,需要定义边框之类的时应该使用css的写法. 具体实现如下: <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Html5 Tab

Java操作属性文件,支持新增或更新多个属性

Java操作属性文件,支持新增或更新多个属性 一.更新或新增单个属性的方法 /** * 写入properties信息 * @param filePath 绝对路径(包括文件名和后缀名) * @param parameterName 名称 * @param parameterValue 值 */ public static void writeProperties(String filePath, String parameterName, String parameterValue) { Pro

chorme浏览器不支持audio/video中的autoplay属性的解决方法

在chrome 浏览器中输入:chrome://flags 再搜索audio,找到Autoplay policy 再在右侧的选项中设置为 no user gesture is required 即可 (这貌似有点坑呀,用户哪里会这样玩?) http://www.cnblogs.com/aniu-caili/p/9474563.html 原文地址:https://www.cnblogs.com/garfieldzhong/p/10180694.html

各浏览器对 onbeforeunload 事件的支持与触发条件实现有差异

标准参考 无. 问题描述 一般情况下,onbeforeunload 事件处理函数内会写入一些提示性语句,当用户的浏览器跳转到其他页面时,用来提醒用户当前页面将要跳转,请用户决定是否观看新页面.或者在 onbeforeunload 事件内处理一些业务逻辑,在浏览器跳转到新页面之前 ,执行一些业务逻辑,如保存用户浏览信息等. 简单的说这个事件应仅在页面 URL 发生变化时触发,但是在 IE 中 使用 JavaScript 伪协议执行脚本程序时,也会触发 onbeforeunload 事件. 造成的影

各浏览器对 onunload 事件的支持与触发条件实现有差异

标准参考 在 HTML 4.01 规范中关于 onunload 事件的描述是:当 document 从 window 中移除时,触发 onunload 事件. 关于 HTML 4.01 规范中 onunload 内在事件说明:http://www.w3.org/TR/html401/interact/scripts.html#adef-onunload . MSDN 中关于 onunload 事件的描述:http://msdn.microsoft.com/en-us/library/ms5369

10、网页制作Dreamweaver(扩展:各浏览器对 onunload 事件的支持与触发条件实现有差异)

标准参考 在 HTML 4.01 规范中关于 onunload 事件的描述是:当 document 从 window 中移除时,触发 onunload 事件. 关于 HTML 4.01 规范中 onunload 内在事件说明:http://www.w3.org/TR/html401/interact/scripts.html#adef-onunload . MSDN 中关于 onunload 事件的描述:http://msdn.microsoft.com/en-us/library/ms5369