iframe中访问easyui的jsp页面时,脚本的正确写法

本文详细介绍了在使用EasyUI组件时,如何正确地在iframe页面中访问对象,避免了使用document对象导致的错误。同时,提供了解决iframe页面加载延迟的方法,确保用户体验不受影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        相信有很多初学Easyui的人都会遇到这样的问题,那就是在页面中采用iframe标签后,当直接指定src页面是一个采用了easyui组件的页面,当parent窗口需要访问iframe中的对象时,不应该采用document的访问,而应该访问iframe的对象,这样才能用easyui中的标准api访问对象的属性和方法,具体访问方法如下两种:

        1、document.getElementById('ss_frame').contentWindow.$('#dgMANUF').datagrid('getSelected');

           2、$.find('iframe')[0].contentWindow.$('#dgMANUF').datagrid('getSelected');

        请不要使用$('#ss_frame').contentWindow.$('#dgMANUF').datagrid('getSelected');这样的代码,因为在JQuery中无法正确返回对象,系统会提示“无法获取属性“nodeName”的值: 对象为 null 或未定义 Error”之类的错误。

        访问对象的问题解决以后就会带来另外一个问题,iframe的刷新问题,因为可能大家会采用动态页面,我们看到很多解决方案说只要将对象的src修改就可以正确显示,但是我们发现系统会有一个延迟,而这对于脚本客户端会有致命的错误。解决的方法其实很简单,那就是直接让iframe的对象输出一个提示,直到页面加载完毕。具体解决代码如下:

        document.getElementById('ss_frame').contentWindow.document.write('loading...');

        代码简单,但是效果立竿见影。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值