各浏览器Iframe对contentWindow、contentDocument、document及frames属性测试

 

Iframe易于嵌套及管理页面,但经常遇到跨域、父子页面访问问题,对于子页面访问父页面可以兼容性地通过window.Top或window.Parent或window.frameElement等操作,但对于标题中四个对象,一直没有完整测试过,故买个苦力,分享给大家。

结论:
1. 就浏览器而言(横向),IE8/IE9/360安全浏览器全部支持;
2. 就属性而言(纵向),contentWindow和frames所有浏览器都支持,其次是contentDocument,document支持性最差;
3. 由于iframe经常涉及跨域,本地测试(即未发布)环境中,chrome/360极速/IE6/IE9对于contentWindow.document属性是deny状态,原因是Unsafe JavaScript attempt to access frame with URL file:///***.html from frame with URL file:///***.html Domains, protocols and ports must match。IE9本地环境下对于contentDocument也是deny的。

各浏览器Iframe对contentWindow、contentDocument、document及frames属性测试

时间: 2024-10-31 18:11:07

各浏览器Iframe对contentWindow、contentDocument、document及frames属性测试的相关文章

contentWindow,contentDocument, docuemnt ,window,self,top,parent,opener的关系

前言 最近又开始开发公司的后台管理系统,由于整个页面的架构是通过iframe来进行区域划分,所以经常需要通过 父窗口来调用子窗口方法或者子窗口获取父窗口变量等窗口的情况,所以整理一下相关的用法,避免遗忘! 一.top,parent,self,window,opener之间的区别和关系 self: 当前窗口的引用 与winow,window.self等价. top: 顶层窗口对像 与window.top等价:如果窗口本身就处于顶层,则top与window,window.top对象等价. paren

解决IE浏览器IFrame对象内存不释放问题

最近项目组发现在使用showModalDialog弹出窗体中如果包含IFrame对象,则IFrame对象占用的内存资源在窗体关闭后不会释放.弹出关闭反复多次后,IE浏览器内存占用可超过数百M,严重时IE浏览器报错,且无法关闭,只能通过杀进程的方式重启浏览器.经测试,使用open方式弹出也存在该问题. 在IE8浏览器中,open和showModalDialog弹出的内存占用有差异: open方式弹出的窗体占用的是一个独立的iexplorer.exe进程: showModalDialog方式弹出的窗

IE下iframe中使用滤镜document.selection.createRange().text获取不到值得解决办法

通常的写法是select方法后跟一个blur方法,但是这里我们不能使用blur方法,应该将blur改为window.parent.document.body.focus(); IE下iframe中使用滤镜document.selection.createRange().text获取不到值得解决办法,布布扣,bubuko.com

Delphi中Twebbrowser的document 对象的属性、方法、事件一览(转)

Delphi中Twebbrowser的document 对象的属性.方法.事件一览(转) 2012-12-07 10:19:39|  分类: Delphi 零碎 |  标签:webbrowser  属性  方法  事件  delphi   |举报 |字号大中小 订阅 {ihtmldocument2 方法:}write //写入writeln //写入并换行open //打开一个流,以收集 document.write 或 document.writeln 的输出close //关闭并输出用 do

BOM对象,math对象document对象的属性和操作

Math对象 //该对象中的属性方法 和数学有关. abs(x) 返回数的绝对值. exp(x) 返回 e 的指数. floor(x) 对数进行下舍入. log(x) 返回数的自然对数(底为e). max(x,y) 返回 x 和 y 中的最高值. min(x,y) 返回 x 和 y 中的最低值. pow(x,y) 返回 x 的 y 次幂. random() 返回 0 ~ 1 之间的随机数. round(x) 把数四舍五入为最接近的整数. sin(x) 返回数的正弦. sqrt(x) 返回数的平方

ie7/8浏览器报错:对象不支持“trim”属性或方法

解决方法: 方法1: 使用jquery里面的全局函数$.trim()代替原生js方法trim(): $.trim( 你要替换的字符 ); 方法2: Function.prototype.method = function (name, func) { this.prototype[name] = func; return this; }; if (!String.prototype.trim) { //判断下浏览器是否自带有trim()方法 String.method('trim', funct

document.location的属性

示例html完整路径为: http://10.10.3.117:8500/html/ypt/index.html alert("document.location.href:"+document.location.href); 描述:设置或返回主机名和当前URL 的端口号 结果:http://10.10.3.117:8500/html/ypt/index.html alert("document.location.hash:"+document.location.h

sarafi浏览器iframe跨域cookie无效的处理方案(笨方法,看官莫笑)

<script> $(function(){ url = 'oauth_authorize_api'; loaded = false; iframe = '<iframe id="login" width="100%" height="500" src="' + url + '"></iframe>'; $(".test").click(function(){ if(lo

document.readyState等属性,判断页面是否加载完

如何在页面加载完成后再去做某事?什么方法可以判断当前页面加载已完成?document.readyState 判断页面是否加载完成?javascript提供了document.readyState=="complete"方法来解决当前页面加载判断的问题. <script type="text/javascript">   function initView(){         if (document.readyState=="complete