关于IFrame共享父窗体ExtJs资源的问题
来源:互联网 发布:黑马程序员就业骗局 编辑:程序博客网 时间:2024/06/11 22:09
目的是:希望Iframe可以共享父窗体ExtJs资源,这样每个子窗口就无需下载和执行同样一份脚本,这样浏览器可以减少比较可观的资源开销。
我尝试了一个方法,但好像不行,以下是我的尝试:
1.在子窗体页面写下:Ext=top.Ext;
2.渲染的时候发现子页面的内容被渲染到父窗口去了。(ext-base-debug.js,ext-all-debug.js这两个库文件是由父窗口引入的,所以Ext.getBody()得到的实际上是top.window.document.body,所以就渲染到父窗口去了)
3.于是在子窗口的组件渲染时,直接渲染到子窗体自己的window.document上面,此时,子窗体确实可以显示在自己的Iframe中,但是仍然存在一些问题。(原因跟上面描述的差不多,extjs库本身在比较多的地方引用document对象,所以当一个组件创建在iframe里面,ext查找的时候可能在top.window.document里面找,找不到,于是错了)
4.在子功能js载入的时候增加一段代码top.currentDoc=document;(currentDoc表示Ext库的当前上下文窗口),然后修改extjs库所有引用document的地方,如果存在currentDoc就用currentDoc来替换document。本想用这个方法,在子窗口切换的时候更新top.currentDoc来实现每个窗口操作的时候,在它自己的窗体上操作,以避免从其他窗口或父窗口获取对象。改了之后还是存在一些比较难排查的问题,而且发现,extjs库改动的地方比较多。
实际上我认为Ext其实是有状态的,它不是简简单单的JS函数,在引入ext库的时候,它已经绑定了DOM(document等),它被执行它的上下文绑定了(window)。
当然还有其他方法,可以把每个功能页面当做一个Panel而不是Iframe,但系统现有功能函数命名都是过程式的命名,没有Iframe的隔离,没有命名空间,命名会存在较大冲突的可能性,我们现在的代码组织方式,此方法暂时不考虑。
大家有什么方法?
- 关于IFrame共享父窗体ExtJs资源的问题
- ExtJS嵌入网页要解决iframe自动适应窗体大小的问题
- 关于Iframe之间以及与父窗体的值传递
- 关于Iframe之间以及与父窗体的值传递
- extjs 中iframe内存泄漏的问题
- 关于extjs中form中嵌套iframe中含form的提交问题
- iframe 中 刷新 含有iframe 的父窗体 的api
- 关于IFrame与其中的控件以及其父窗体的交互
- 关于Iframe之间以及与父窗体的值传递(转)
- [转]关于Iframe之间以及与父窗体的值传递
- 子窗体向父窗体的iFrame传值得方法
- iframe父窗体和子窗体的相互调用
- iframe父窗体和子窗体的相互调用
- iframe刷新父窗体
- iframe 获取父窗体
- 关于登录窗体的问题
- 关于iframe与父窗口元素选取的问题
- 关于子窗口刷新父窗口(iframe)的问题?
- char vchar nchar nvchar的区别
- Windows核心编程 第4章 进程
- 十进制
- Handler详解
- winscp连接
- 关于IFrame共享父窗体ExtJs资源的问题
- 删除全部表数据
- 在CentOS 5上安装Git
- 关于单向链表的逆序
- Hibernate缓存清除
- 两条命令搞定CentOS5.4中PHP的版本升级
- 日期列表的获取
- 日期列表的获取
- cache周时过期问题的解决办法