`

拒绝iframe嵌套,ajax方式轻松实现单页面

    博客分类:
  • Ext
阅读更多
以前单位做的项目都是上面一排菜单按钮,每点击一次按钮下面工作区的iframe就到后台重新加载一次页面;这样做有很大弊端,其一是iframe经常会对弹出层造成遮挡(ie6下),其二是每个页面都有一个jsp页面(其实就是些js、css之类的引用)和js文件,维护起来很是不便;其三,iframe里的遮罩没法挡住整个屏幕区域。既然如此,我们就不能直接去下js文件把组件添加到页面上吗?答案是可以的,而且很简单。

第一步:创建一个返回Panel的匿名方法,例如
(function() {
...//你可以在这里写关于这个面板的代码
return new Ext.Panel({
			...//此处省略
			});
})()

第二步:设定好一个工作区(Panel对象),我的做法是让这个Panel成为上级Panel的唯一子结点以方便引用,例如:
...//省略其他配置
items: [{
              id: 'workpanel',
              layout: 'fit',
              items: {
                   [color=red] html: 'Hi,have fun!'[/color]
              }
       }],
...//省略其他配置

红字部分所代表的Panel就是我们的工作区,它会随菜单的单击而转变为不同的对象
第三步:为每一个按钮添加点击事件,例如
var p=Ext.getCmp('workpanel');
Ext.Ajax.request({
                        url: url,
                        success: function(response, opts){
                            var obj = eval(response.responseText);
							p.add(obj);
							p.removeAll();
							p.doLayout();
                        }
                    });

其实核心就是用ajax的方式获取js文本,之后通过eval方法转换为Panel对象,再将原来的Panel替换掉,别忘了workpanel的autoDestroy可别设置成false,那样做对性能会有很大影响
分享到:
评论

相关推荐

    在vue中实现嵌套页面(iframe)

    在Vue.js中实现嵌套页面通常涉及到使用`iframe`元素来加载外部网页或者内部组件。`iframe`允许我们在一个Vue应用中嵌入另一个独立的HTML文档,这对于展示第三方内容、实现某些特定功能或者处理复杂交互场景时非常...

    登录注册,iframe内嵌套版本

    4. **跨域通信**:由于iframe加载的是另一个源的页面,如果登录注册页面与主页面不在同一个域下,那么需要使用`window.postMessage`方法进行跨域通信,以便将登录状态或其他信息传递回主页面。 在`regist.js`这样的...

    layuiAdmin经典模板

    "iframe版"通常用于传统的多页面后台系统,通过iframe实现页面间的跳转和嵌套,使得各个功能模块可以独立加载,有利于保持页面的清晰度和性能。"单页面应用版"则采用现代前端SPA(Single Page Application)架构,...

    关于Iframe如何跨域访问Cookie和Session的解决方法

    系统直接跳转到系统后台首页,后台登录成功后所跳转的URL这里没法指定,控制不了跳转的页面,如果在统一后台里需要链接到这个系统后台的另外一个页面,而非后台默认首页时,也就是将第三方系统后台的菜单功能放到...

    两个JSP页面父页面获取子页面内容的两种方法

    总结来说,父页面获取子页面内容的需求常见于动态网页应用中,通过合理运用Ajax请求或iframe嵌入的技术手段,可以有效实现页面内容的动态加载和交互。开发者应根据具体的业务场景和性能要求,选择最适合的技术方案。...

    ExtAspNet_v2.3.2_dll

    -ExtAspNet支持原生的AJAX,也就是说控件的属性改变在AJAX过程中会反映到页面中,但并不是所有的控件属性都支持AJAX改变。 -加载s.gif图片在本机进行,不会请求extjs.com远程资源(feedback:efrigate43,abaocoole)...

    最新Python3.5零基础+高级+完整项目(28周全)培训视频学习资料

    ajax操作-伪ajax(iframe) ajax操作-时机选择 文件上传(3种方式)-1 文件上传-时机选择及预览-2 图片验证码 KindEditor基本使用和文件操作 作业 第25周 今日内容概要 博客系统示例预览 组合搜索组件 JSONP跨域...

    ExtAspNet v2.2.1 (2009-4-1) 值得一看

    -优化AJAX的内部实现,每个页面保存的ViewState现在减少1/3左右(重要更新)。 -优化Tree节点的NodeId自动生成,减少ViewState占用。 +2009-08-09 v2.0 beta5 +ExtAspNet和Asp.net的提交按钮兼容问题...

    超实用的jQuery代码段

    1.15 实现iframe高度自适应 1.16 实现左右div自适应相同高度 1.17 获取鼠标在屏幕中的坐标 1.18 获取鼠标在窗口客户区中的坐标 1.19 获取鼠标在窗口页面中的坐标 1.20 设置Flash对象的WMode窗口模式 1.21 实现类...

    浅析JS刷新框架中的其他页面 && JS刷新窗口方法汇总

    标题《浅析JS刷新框架中的...现在更多的开发者会采用Ajax或Fetch API来进行动态内容更新,或者使用单页面应用(SPA)框架,如React、Angular或Vue.js来管理页面渲染,这些框架提供了更高级的状态管理和组件化开发方式。

    javascript跨域刷新实现代码

    这种方式在单页面应用(SPA)中尤为常见。 除了Ajax之外,还提到了使用jQuery处理JSON数据,这实际上也是一种实现局部更新的方式。JSON是轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。利用...

    自己做的layui的管理后台源代码

    源代码中可能包含了多种页面布局示例,如主子页、iframe嵌套等,方便开发者构建复杂的后台结构。 2. **layui组件**:layui提供了一系列的组件,如表格(table)、表单(form)、按钮(button)、弹窗(layer)、...

    IPanel应用开发指南

    推荐使用iFrame而非Frame,因为iFrame更灵活,同时避免在单个页面中嵌套过多的Frame。 ### iPanel对WEB标准的支持情况 iPanel对WEB标准的支持情况涵盖了对HTML、JavaScript、CSS、DOM、DHTML、AJAX、Marquee、HTTP...

    项目实践一图片上传之form表单还是base64前端图片压缩(前端图片压缩)

    在本文提到的公益众筹平台亲青筹中,初期使用了iframe嵌套form表单的方法,但由于后台未处理图片压缩且存在用户界面响应时间问题,最终选择前端进行图片压缩并通过AJAX以base64形式上传图片到后台。 总结来说,在...

    子窗体最大化与父窗体菜单合并的案例

    3. 如果需要菜单合并,可以使用母页面(Parent Page)的`iframe`来加载子页面(Child Page),并通过JavaScript或AJAX通信实现菜单同步。 菜单合并是另一个关键点,这通常涉及到菜单控件(如MenuStrip或MenuStrip...

    JS跨域访问解决方案总结

    这种方式可以实现父页面与子页面或者两个相互嵌套的IFrame之间的数据交换。 5. **WebSocket跨域**:WebSocket是一种在单个TCP连接上进行全双工通信的协议,它允许服务器和客户端进行双向通信,且不受同源策略限制。...

    《YaHoo军规》

    - 实现方式包括但不限于镜像、高速缓存和专线连接等。 3. **为文件头指定Expires或Cache-Control** - 这种做法可以告知浏览器哪些内容是可以被缓存的,从而减少后续请求时的网络传输时间; - 有助于提高用户再次...

    js中top/parent/frame概述及案例应用

    需要注意的是,随着Web标准的发展,现代网页设计更倾向于使用Ajax和SPA(单页面应用)技术,以避免iframe带来的页面加载慢和SEO不友好等问题。然而,在一些特殊需求和遗留系统中,对`top`、`parent`、`frame`对象的...

Global site tag (gtag.js) - Google Analytics