window.frames[]在Firefox下无法兼容的解决方式

html代码段:

1 <iframe id="fr" src="ProjectTree.aspx?IsFree=true&f=yes&IsCheckProjectAuthority=false" frameborder="0" scrolling="no" style="height:100%;  100%;"></iframe>

JavaScript代码段:

1 window.frames["fr"].XX方法(); //XX方法在此iframe内容中已经定义;这段代码在IE下能正常调用,但在Firefox下报错,因为Firefox无法通过id属性值获取到此iframe的window对象,Firefox是通过name属性值获取它的

解决方式,修改html代码段,如下:

1 <iframe id="fr" name="fr" src="ProjectTree.aspx?IsFree=true&f=yes&IsCheckProjectAuthority=false" frameborder="0" scrolling="no" style="height:100%;  100%;"></iframe>

区别在于:新增name属性,它的属性值跟id属性值保持一致,在Firefox中会读取name属性值去获取到对应名称的iframe的window对象。

如果要获取iframe的element对象,比如要设置它的src属性值,这里建议用document.getElementById方法获取。

原文地址:https://www.cnblogs.com/huangjianwu/p/4549711.html