新手求助,easyui使用iframe和直接addtab的区别

新手求助,easyui使用iframe和直接addtab的区别,第1张

效果一样。

不过我喜欢直接addtab

因为,addtab就是一个panel而panel只加载body之间的内容。

如果使用框架,则需要重新加载rasyui等一系列组件。

当然,iframe也有好处。因为在不同的页面,可使用重复的id。

而addtab的话,就要注意id的全局性。如果使用者可能增加几十个页面,那id可能会有重复的意义。所以,此时,我是用文件名+id,以保证id的不重复。

在加载函数的$前面加上top.试一下

http://92ui.net/easyui/demo/main/index.aspx?plugin=Window&theme=default&dir=ltr&pitem=

很多初学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...')


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11514928.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存