Javascript iframe交互并兼容各种浏览器的解决方法

 更新时间:2016年07月12日 10:22:20   作者:嗑瓜子儿gf  
这篇文章主要介绍了Javascript iframe交互并兼容各种浏览器的解决方法的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下

在Web前端开发中,我们经常会用到iframe这个控件。

但是这个控在内、外交互时,往往各个浏览器所用的关键字不同,很是麻烦,为了能够得到子iframe中的window对象,各家浏览器有着各家的指定,有的是window,有的是contentWindow等等也许还有我们不知道的。

但是从子页面访问父层页面,其本上大家都是window.parent就可以了。

那么通过这个特征,我们可以在子页面中,把自身的window对象传递给父页面就可以了,这样父页面就很轻松的访问子页面,再也不用靠虑如何从iframe对象上得到window对象了。

二话不说,我们先看代码:

父页面代码:

window.iframeWindow = null;
function frameReady(subWindow){
window.iframeWindow = subWindow; //赋值
}; 
<iframe src = "xx" ></iframe> 

子页面代码:

$(function(){
window.parent.frameReady(window);
}); 

通过上面简单的代码,就可以在父页面中访问iframeWindow对象,直接得到了子页面的window对象,非常无脑也非常好用。

如果我有多个iframe该怎么办呢?

这种情况会稍微复杂一点,但是没关系。我们想继续使用上面的方案,就分析一下现状:

1.我们应该会需要一个类似iframeWindows的集合对象,用于管理所有子页面的window对象。

2.每个子页面在调用parent.frameReady时,必须靠诉父页面一个唯一名称,使得我们可以在父页面中对各个iframe进行精确访问

那么这下就简单了,子页面要做的事,无非就是一个名称、编号啥的,我们来看代码

window.subWindowName = "HelloWorldWindow";
$(function(){
window.parent.frameReady(window.subWindowName, window);
}); 

那么父页面要做的事就是重构frameReady并增加一个参数

window.iframeWindows = {}; //这里变成了一个对象
function frameReady(name, window){
window.iframeWindows[name] = window;
};
function getSubWindow(name){
return window.iframeWindows[name];
}

总结:

通过这种方案构建的页面存在以下优点:

1.父子页面的交互仅依赖于parent关键字(而以前的方式中,不仅依赖parent,还要依赖contentWindow、window等其它不确定关键字,最重要的是parent的支持还是非常好的)

2.window对象统一化,减少了每次使用时再请求的引用链,提高了运行的速度

3.最重要的一点:就是代码写起来轻松多了。

以上所述是小编给大家介绍的Javascript iframe交互并兼容各种浏览器的解决方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

相关文章

  • JS禁用浏览器退格键实现思路及代码

    JS禁用浏览器退格键实现思路及代码

    关于浏览器退格键的禁用,可行的方法有很多,在本文将为大家详细介绍下在js中时如何做到的,有需求的各位可以参考下
    2013-10-10
  • JS面试之对事件循环的理解

    JS面试之对事件循环的理解

    这篇文章主要为大家介绍了JS面试之对事件循环的理解分析详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-09-09
  • typescript路径别名问题详解与前世今生的故事

    typescript路径别名问题详解与前世今生的故事

    我们都知道只有正确引用路径,Typescript才不会提示报错,这篇文章主要给大家介绍了关于typescript路径别名问题详解与前世今生的故事,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2022-07-07
  • JavaScript传参的6种方式总结

    JavaScript传参的6种方式总结

    js中的传值方式,对于简单类型(好比字符串和数值)就是值传递和引用传递,下面这篇文章主要给大家介绍了关于JavaScript传参的6种方式,需要的朋友可以参考下
    2023-03-03
  • js操作时间(年-月-日 时-分-秒 星期几)

    js操作时间(年-月-日 时-分-秒 星期几)

    js操作时间(年-月-日 时-分-秒 星期几),需要的朋友可以参考下。
    2010-06-06
  • JavaScript实现的商品抢购倒计时功能示例

    JavaScript实现的商品抢购倒计时功能示例

    这篇文章主要介绍了JavaScript实现的商品抢购倒计时功能,可实现分秒级别的实时显示倒计时效果,涉及js日期时间计算与页面元素动态操作相关技巧,需要的朋友可以参考下
    2017-04-04
  • Typescript实现队列的示例代码

    Typescript实现队列的示例代码

    队列作为一种数据结构,在现实生活中它可应用于电影院、自助餐厅等场合,本文主要介绍了Typescript实现队列的示例代码,具有一定的参考价值,感兴趣的可以了解一下
    2024-08-08
  • JavaScript localStorage使用教程详解

    JavaScript localStorage使用教程详解

    JavaScriptlocalStorage基本上是浏览器Window对象中的存储,您可以在中存储任何内容localStorage,localStorage及其相关的sessionStorage是 Web Storage API的一部分,我们将在本文详细了解这些,需要的朋友可以参考下
    2023-06-06
  • 用javascript实现页内搜索的脚本代码

    用javascript实现页内搜索的脚本代码

    用javascript实现页内搜索的脚本代码...
    2007-08-08
  • JavaScript实现换肤效果(换背景)

    JavaScript实现换肤效果(换背景)

    这篇文章主要为大家详细介绍了JavaScript实现换肤效果,即换背景功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09

最新评论