在使用Ext.grid.GridPanel时,为了方便导出表格中数据。使用了window.open在新窗口中打开PDF,XLS格式的结果,在firefox2.0.15,3.0.1下正常,在IE6,IE7下返回一个空白页面,从服务器控制台可以看到服务器端是执行了报表导出动作,换成链接方式<a href="export.action?xxx=xxx"> 则可以正确显示结果。
window.open(url) 与 <a href="url" >有这么大区别?export.action是将grid中数据已报表形式显示出来,并可选择导出文件类型。
代码如下
var grid = new Ext.grid.GridPanel({
border:false,
viewConfig: {
forceFit:true
},
store: store,
cm: cm,
sm:gridsm,
loadMask: true,
bbar: new Ext.PagingToolbar({
pageSize: 20,
store: store,
displayInfo: true,
items:['-',{
text:'查询范围',
menu:contactGridFilterMenu
},
filterField,
filterButton,
clearButton,
'-',
{
iconCls:'icon-pdf',
tooltip:'将表格导出为PDF文件',
handler:function(){
var s='';
if(store.lastOptions){
s+=Ext.urlEncode(store.lastOptions);
}
if(store.baseParams){
if(s===''){
s+=Ext.urlEncode(store.baseParams);
}else{
s+='&';
s+=Ext.urlEncode(store.baseParams);
}
}
if(''!==s){
s = '?'+s;
}
window.open("export.action"+s,"_blank");
}
},{
iconCls:'icon-xls',
tooltip:'将表格导出为XLS文件',
handler:function(){
var s='';
if(store.lastOptions){
s+=Ext.urlEncode(store.lastOptions);
}
if(store.baseParams){
if(s===''){
s+=Ext.urlEncode(store.baseParams);
}else{
s+='&';
s+=Ext.urlEncode(store.baseParams);
}
}
if(''===s){
s = '?type=xls';
}else{
s = '?' + s +'&type=xls';
}
window.open("export.action"+s);
}
}
]
})
});
分享到:
相关推荐
对window.open进行封装, 使其更好用, 且更兼容, 很多人说window.open不兼容,其实不是, 因为不能直接执行, 必须通过用户手动触发才行;看代码: 代码如下 var openWindow = function(url, options) { var str = ""; ...
首先,让我们了解一下`window.open`的基本语法: ```javascript var newWindow = window.open(url, name, features); ``` - `url`: 子窗口要加载的URL。 - `name`: 窗口的名字,可以用于后续引用。 - `features`: ...
于项目要用到弹出窗口,或者叫做模拟窗口,这段时间就研究了下,解决方案很多,比如,window.open();window.showDialog();用层模拟,框架+DIV+Javascript.... 用window.open();这种方法的缺点是,会被浏览器或者...
1. 打开窗口:`window.open()`方法用于打开新的浏览器窗口或者在已存在的窗口中加载新的URL。这个方法接受四个参数:URL(要加载的页面地址)、name(窗口的名称,可以用于引用窗口)、features(定义窗口的特性,如...
1. 类似于抢票,有 50 张票,后台如何保证每个人都可以抢到:解决这个问题的方法有多种,如使用 _线程池_、_队列_ 等。这些方法都可以帮助实现抢票的功能。 2. 派生类的理解、精髓:派生类是面向对象编程中的一个...
1. 窗口间通信,如`Window.open`返回的窗口,`Window.opener`,`form post`的目标窗口,`iframe`的`contentWindow`,以及`Window.frames`。 2. 与`Window.parent`或`Window.frames[0]`进行父子窗口之间的通信。 3. ...
**LXDE(Lightweight X11 Desktop Environment)是一个轻量级的X Window桌面环境,专为资源有限的计算机和嵌入式设备设计。它的设计理念是高效、快速且占用资源少,提供了一个用户友好的图形界面,使得在低端硬件上...
1. 使用`window.open()`函数:这种方法通常在需要新开窗口时使用,但当尝试通过POST方法传递数据或遇到跨域问题时,浏览器会拦截弹出窗口。此外,大多数浏览器都会对这种行为进行限制。 2. 表单提交结合`_blank`...
`JSch`库提供了一个这样的解决方案,它是一个纯Java实现的SSH2库,允许开发者连接到远程计算机并执行命令,传输文件等。本篇将详细介绍如何使用Java和JSch在Windows上实现对Linux服务器的文件获取。 首先,我们需要...
- **窗口间通信**:如`Window.open`返回的窗口对象,`Window.opener`,`a`标签打开的窗口,`form`提交的目标窗口。 - **iframe通信**:同页面内或跨页面的`iframe`间的`contentWindow`和`Window.frames`。 - **...
开窗游戏是一款经典的编程练习,通常用于教学或面试中,以测试候选人的逻辑思维和问题解决能力。在Java版本的开窗游戏中,我们通常会遇到一个数组或列表,表示一排窗户的状态,然后通过一系列规则来改变这些窗户的开...
在IE5和IE6中,使用`ActiveXObject`来创建这个对象,而在其他现代浏览器中,则通过`window.XMLHttpRequest`来创建。使用此对象,可以实现浏览器与服务器间的异步通信。 ```javascript var xmlhttp; if(window....
今天在网上看到这篇文章,感觉很少会用到,但毕竟还是有些人需要这样的功能的,否则就不会有这篇文章,这篇文章主要是解决以下问题: 代码如下:1.点击一个可以打开新窗体的链接,如何实现如果窗体已打开,则将焦点转...
通过`window.open`方法打开新页面,并同时设置`window.opener`为`null`,这样可以避免在关闭当前页面时弹出提示框。以下是实现这一功能的JavaScript代码: ```javascript function closeWinAndOpen(url){ var ...
今天在一个群中有人问到ie6中使用js的open,发现新窗口中并获取不到session, 经过使用下面的测试代码测试发现,是因为phpsessionid储存是进程级的有效期,只有同一进程才能获取得到,很多人说,open后或是target=”_blank...
在IT行业中,开发人员经常会遇到需要查看或理解已编译的`.class`文件的源代码问题,这在没有原始源代码的情况下尤其重要。本文将详细探讨如何在MyEclipse环境中解决这种问题,主要关注如何使用反编译插件来查看`....
注:论坛中还有人说删除本插件,模块管理成为空白,解决办法: 下载个和你网站相同版本的DEDE程序,然后找到include/dedemodule.class.php,把这个文件上传到你的网站目录下,一切OK。模块管理再也不是空白了。
例如,“John admitted breaking the window.”(约翰承认打破了窗户。) 2. **Suspect (嫌疑犯)**:指被怀疑犯罪的人,常用于警方调查。例如,“The police are holding a suspect for questioning.”(警方拘留了...
var inAppBrowserRef = window.open(url, '_blank', 'location=yes'); inAppBrowserRef.addEventListener('loadstop', function(event) { inAppBrowserRef.executeScript({ code: 'window.myData' }, function...
而在iframe页面中,使用layer.msg弹出消息时,如果要让消息框在父页面居中显示,需要将消息框的父层设置到最外层的window对象,而不是iframe的window对象。这里使用了parent.parent来访问上层的parent页面的window...