有时候根据客户需求,需要将数据导出到 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
分享到:
相关推荐
- 使用`window.open()`函数配合`data:`协议可以创建一个新的浏览器窗口并写入CSV内容,从而实现无插件的Excel导出。 3. **C#与JavaScript协作的步骤** - **前端**:用户点击导出按钮,JavaScript收集列表数据,...
然后,为了在网页中打开这个Excel文件,可以使用JavaScript的`window.open()`函数。假设你已经将生成的Excel文件保存在服务器的某个路径下,如"/export/output.xlsx",在网页端可以这样处理: ```html ...
网页表格导出到Excel是一项常见的需求,特别是在数据分析和报表展示的场景中。本文将深入探讨如何实现这个功能,以及如何确保兼容Office 2003和2007。 首先,我们要理解网页表格导出的基本原理。这通常涉及到将HTML...
在EXTJS Grid中导出数据到Excel是一种常见的需求,它允许用户方便地处理和分析大量数据。EXTJS是一个强大的JavaScript库,专门用于构建富客户端Web应用程序,而Grid组件是其核心部分,用于展示和管理表格数据。在...
在JavaScript(简称JS)开发中,有时我们需要将网页上的数据导出为Excel文件,以便用户进行下载或进一步处理。这个过程涉及到多个知识点,包括数据处理、文件格式转换以及浏览器兼容性等。以下是对这些关键点的详细...
在Java编程中,导出Excel是一项常见的任务,特别是在Web应用中,用户可能需要将数据导出到Excel格式以便于分析或进一步处理。本文将详细介绍一个支持IE低版本的Java程序实现导出Excel的方法。 首先,我们需要了解...
在IT行业中,尤其是在前端开发领域,数据的导入与导出是常见的需求,特别是在处理表格数据时,Excel格式的文件往往是最方便的选择。本压缩包"Excel导入导出需要的js文件.zip"提供了一种在Vue项目中实现Excel文件导入...
这需要使用特定的JavaScript库或工作流来确保在IE8下也能正确导出。 4. **CSS样式与Word兼容**:Word并不完全支持所有CSS样式,特别是那些依赖于浏览器特性的样式。因此,建议使用通用的CSS样式,避免使用过于复杂...
3. **BOM操作**:浏览器对象模型(BOM)允许JavaScript与浏览器交互,如获取和设置窗口尺寸(window.innerWidth、window.innerHeight),导航(window.location.href),弹出新窗口(window.open),定时执行任务...
1. AJAX(Asynchronous JavaScript and XML)允许网页在不重新加载整个页面的情况下,与服务器交换数据并更新部分网页内容。 2. XMLHttpRequest对象是实现AJAX的核心,通过open和send方法发送请求,...
Javascript小技巧一箩筐 事件源对象 event.srcElement.tagName event.srcElement.type 捕获释放 event.srcElement.setCapture(); event.srcElement.releaseCapture(); 事件按键 event.keyCode ...
可以在GridView中使用CheckBox控件来表示某些状态或进行多选操作。 **实现步骤:** 1. **创建CheckBox:** 在GridView的模板列中添加CheckBox控件。 2. **处理CheckBox事件:** 通过RowCommand事件来响应用户的选择...
异步JavaScript和XML(现在更广泛地用于JSON)允许在不刷新整个页面的情况下与服务器交换数据并更新部分网页。例如: ```javascript let xhr = new XMLHttpRequest(); xhr.onreadystatechange = function() { ...
6. **ES6+新特性**:从ES6开始,JavaScript引入了许多新特性和API,如箭头函数、Promise、async/await、模块导入导出等,这些都是现代JavaScript开发的重要组成部分。 7. **框架和库的API**:React、Vue、Angular等...
例如,`window.location`对象用于获取和修改页面URL,`window.open()`打开新窗口,`window.close()`关闭当前窗口。`setTimeout()`和`setInterval()`用于设置定时任务。 ### 4.事件处理 JavaScript通过事件驱动来...