IE下使用JavaScript的window.open函数在新窗口中导出EXCEL XML表格数据出错的处理

本文介绍了解决在IE浏览器中使用window.open()方法导出数据至Excel XML模板时出现的问题。通过调整JavaScript代码,确保了在IE及Firefox等浏览器上都能正确执行导出操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

有时候根据客户需求,需要将数据导出到 EXCEL 的XML表格模板中。在进行此一操作时,为了不让导出窗口覆盖原先的用户界面,就需要打开新的浏览器目标窗口,在新窗口中进行操作,如下面代码所示:

var url = 'index.php?controller=Qtdsfk&action=Export&skrq=2010-06-09';
window.open(url, '_blank');
 

这时,杯具发生了,IE浏览器死活不按我们的要求正常导出数据,却弹出了错误提示窗口,如下图所示:


 

  出错的原因是,在IE下window.open()里的第一个参数必须是一个干净的链接串,不能带多余的链接参数。换句话说,不能通过GET方式传递参数值。

但在FireFox下,下面语句:

window.open(url, '_blank');
 

却执行得很好。这时,我们就可以用到传说中的牛叉IE浏览器判断方法了。

将导出数据语句修改为:

var url = 'index.php?controller=Qtdsfk&action=Export&skrq=2010-06-09';
if (!-[1,]) {
	document.location.href = url;
} else {
    window.open(url, '_blank');
}
 

这样就可以保证IE和FF浏览器下都能够正常导出数据了。令人纠结的是,IE下在新目标窗口导出数据始终得不到解决。

 

由于客户端使用的浏览器还是IE为大部分,如果不解决这一问题,始终不是个事,心中始终有个解不开的结。因此,拿起《JavaScript权威指南》(第四版)死啃window.open()章节。最后看到讲解window.location.href的内容,心中豁然开朗,问题终于有解。

 

将导出语句修改为:

var w = window.open(); // 打开新窗口,返回窗口句柄
w.location.href = 'index.php?controller=Qtdsfk&action=Export&skrq=2010-06-09';
   

最后在IE、FF中测试通过。现在吃嘛嘛香,腰不疼,腿有力了,歌仔也可以唱了,春天里百花开,朗格朗格朗。。。。。。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值