我在域名"abc.com"的页面中使用jquery,该页面在域名"def.com"上打开iframe,该iframe也使用jquery(相同版本,我尝试了从1.5.2到1.6.4的不同版本)。使用jquery库thickbox打开框架(不再维护…)。
我的问题出现在Firefox(任何版本从3。X到8.0),在那里我得到javascript错误"c.defaultView.getComputedStyle(a, null)是null"第一次加载iframe,因此不能访问任何jquery初始化方法:
$(function() {
/* Does not pass here in firefox */
});
在任何其他浏览器(chrome,即opera…)的代码工作,但在firefox我必须手动重新加载iframe(右键单击->这个框架->重新加载)…我在这里读过一些关于类似问题的帖子,每次问题都是两个jquery库之间的冲突。在我的情况下,我不能删除一个JS,因为这两个页面是在不同的域。
谢谢你的帮助。
这与以下Firefox错误有关:
Bug 548397 - window.getComputedStyle()在带有display: none的iframe中返回null
可能的解决方案包括将iframe的宽度和高度设置为0或可见度设置为隐藏,而不是使用display: none
。