iframe中访问easyui的jsp页面时脚本的正确写法
发布时间:2015-06-05 来源:查字典编辑
摘要:很多初学Easyui的人都会遇到这样的问题,那就是在页面中采用iframe标签后,当直接指定src页面是一个采用了easyui组件的页面,当...
很多初学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...');