有时候根据客户需求,需要将数据导出到 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中测试通过。现在吃嘛嘛香,腰不疼,腿有力了,歌仔也可以唱了,春天里百花开,朗格朗格朗。。。。。。
- 大小: 8.6 KB
- 大小: 10.1 KB
分享到:
相关推荐
当在网页中用javascript winow.open 打开一个新窗口后,是否能在你窗口中调用并执行新窗口中的代码或调取其中的元素? 答案是肯定的。 这段示例代码不但能在父窗口页面test.html中执行被打开的新窗口页面test-open...
window.open打开新窗口,不被拦截的方法
最近做一个JSP网页要求打开一个没有菜单工具栏的IE,想到用window.open 来打开。但是发现如果先前打开的窗体没有关掉,在打开一个窗体的时候就会在先前没有关闭的窗体上打开新的窗体,这样先前的窗口就被替换掉了。...
对window.open进行封装, 使其更好用, 且更兼容, 很多人说window.open不兼容,其实不是, 因为不能直接执行, 必须通过用户手动触发才行;看代码: 代码如下 var openWindow = function(url, options) { var str = ""; ...
windows.open这个是JavaScript函数,但是在应用起来的时候总会遇到比较多的麻烦,因为参数非常多,用法也非常的多
window.open使用方法以及参数说明一、window.open()支持环境: JavaScript1.0+/JScript1.0+/Nav2+/IE3+/Opera3+ 二、基本语法: window.open(pageURL,name,parameters) 其中: pageURL 为子窗口路径 name 为子窗口...
主要介绍了javascript window.open打开新窗口后无法再次打开该窗口问题的解决方法即无法再次打开窗口、第二次打开不了,需要的朋友可以参考下
JavaScript中Window.open参数详解 1、最基本的弹出窗口代码 2、经过设置后的弹出窗口 3、用函数控制弹出窗口 4、同时弹出2个窗口 5、主窗口打开文件1.htm,同时弹出小窗口page.html ...
本文较为详细的分析了JavaScript中window.open用法。分享给大家供大家参考。具体如下: 代码如下:[removed] window.open (‘page.html’, ‘newwindow’, ‘height=100, width=400, top=0, left=0, toolbar=no, ...
javascript 打开页面window.location和window.open的区别.docx
当在网页中用javascript winow.open 打开一个新窗口后,是否能在父窗口中调用并执行新窗口中的代码或调取其中的元素? 答案是肯定的。 这段示例代码不但能在父窗口页面test.html中执行被打开的新窗口页面test-open...
javascript中window.confirm这个方法很好用,可以弹出一个确认对话框我们之所以弹出这个对话框,可能就是因为该操作很危险,所以要用户确认。但如果默认选择”确定”,则可能违背了这个原则。 另外,confirm对话框的...
使用xlsx.full.min.js导出有复杂表头的excel(亲测有效) > 今天项目用到了导出table表格,但表头有点特殊,多个合并的单元格。 > 搜索了半天,发现有博主使用 ``xlsx.full.min.js`` 做过此类功能,使用的是vue+...
受到( 启发。 特征 仅2.68KB (已压缩!)。 支持完整的window.open api 。 为React 16构建(使用ReactDOM.createPortal )。 阻止弹出窗口的处理程序... children内容将呈现到新的弹出窗口中。 在这种情况下, Hi
excel.js(导出excel表格)
我现在要说的是window.open函数的几个使用策略,一般情况下,如果你直接在js中调用window.open()函数去打开一个新窗口,浏览器会拦截你,认为你将弹出广告等用户不想得到的窗体,所以如果不想让浏览器拦截你,你...
一个经典的JavaScript导出excel函数
使用nodejs将mysql数据库中的数据导出成excel格式,并附带mysql连接池及mysql模块的封装,以及三百万的mysql测试数据,内容详细。
Window.close()这句脚本是用来关闭当前窗口,如果是在window.open的窗口中执行Window.close(),将会很顺利地将窗口关闭,但如果是在一非window.open打开的窗口中执行Window.close(),将会弹出一个提示窗口,如下: ...