IE10不能显示JSON文件内容
IE7,8,9下Ajax返回后,再执行跳转,会弹出阻止提示框。
所以我采用WebForm 提交思想:
//导出
jv.postOpen = jv.PostOpen = jv.Export = function (url, postJson, op) { var entity = op.entity ;
var target = op.target || entity; var _createIframe = function (id) {
var iframe = jv.toElement('<iframe src="javascript:false;" name="' + id + '" />');
iframe.setAttribute('id', id);
iframe.style.display = 'none';
document.body.appendChild(iframe);
return iframe;
},
_createForm = function (target) {
var form = jv.toElement('<form method="POST"></form>');
form.setAttribute('action', url);
form.setAttribute('target', target);
form.style.display = 'none'; var isSimple = function (type) {
return ["string", "number", "date"].indexOf(type) >= 0;
}; var json = {};
var rec = function (obj, prefix) {
if (jv.IsNull(obj)) return; if (prefix) prefix += "."; for (var k in obj) {
var v = obj[k];
var t = jv.getType(v);
if (isSimple(t)) {
json[prefix + k] = v;
continue;
}
rec(v, prefix + k);
}
}; rec(postJson, ""); if (json) {
for (var k in json) {
form.appendChild(jv.toElement('<input type="hidden" name="' + k + '" value="' + json[k] + '" />'));
}
} document.body.appendChild(form);
return form;
}; if (op.self) {
var iframe = _createIframe(target); var fn = function () {
if (!iframe.parentNode) {
return;
} var response;
var doc = iframe.contentDocument ? iframe.contentDocument : iframe.contentWindow.document; try {
var innerHTML ;
var $html = $(doc.body.innerHTML) ;
var $pre = $html.find("pre");
if ($pre.length == 0 ) innerHTML = $html.text() ;
else innerHTML = $pre.text() ; //ie 返回的pre内容里,有 font ,还额外赠送一个 ^ 号。
if( innerHTML.slice(-1) == '^') innerHTML = innerHTML.slice(0,-1) ; // if (innerHTML.length > 10 && innerHTML.slice(0, 4).toLowerCase() == '<pre' && innerHTML.slice(-6).toLowerCase() == '</pre>') {
// innerHTML = doc.body.firstChild.firstChild.nodeValue;
// } if (innerHTML.length > 1 && innerHTML.slice(0, 1) != "<") {
if ( innerHTML.slice(0, 1) == "{" && innerHTML.slice(-1) == "}"){
response = $.parseJSON( innerHTML) ;
}
else {
response = jv.execJs( innerHTML );
}
}
} catch (err) {
response = { success: false };
} if (response && response.extraJs) jv.execJs(response.extraJs); if (op.callback) op.callback(response,doc);
}; //优先使用 attachEvent , 解决IE9下的BUG。
if (iframe.attachEvent) {
iframe.attachEvent('onload', fn);
}
else if (iframe.addEventListener) {
iframe.addEventListener('load', fn, false);
}
}
else {
var p = { entity: entity };
var whConfig = jv.PopListConfig(p.area, p.entity, p.detail); if (!p.width) {
p.width = whConfig[0];
} if (!p.height) {
p.height = whConfig[1];
} p.openMode = whConfig[2] || target; //多次打印多个窗口 p.entity = entity;
p.autoFocus = false; jv.Pop("", p);
} var form = _createForm(target);
form.submit();
};
但 IE10 下由于无法直接解析 JSON, 在使用该机制时,会弹出下载提示,并且阻止客户端的解析。
解决方案:http://blog.csdn.net/wang_shaner/article/details/6668359
Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\MIME\Database\Content Type\application/json]
"CLSID"="{25336920-03F9-11cf-8FD0-00AA00686F13}"
"Encoding"=dword:00080000 [HKEY_CLASSES_ROOT\MIME\Database\Content Type\text/json]
"CLSID"="{25336920-03F9-11cf-8FD0-00AA00686F13}"
"encoding"=dword:00080000
经测试,是可行的。但让用户这样干,恐怕不好实行。
另一种方法: 把返回的 Json 标志改为 text/html , 但这也太狗血了。
等着 IE10 SP1 吧。狗血的IE
IE10不能显示JSON文件内容的更多相关文章
- 如何在浏览器网页中显示word文件内容
如何在浏览器网页中显示word文件内容 把word文件读到byte[]中,再Response.OutputStream.Write(bytes)到客户端去 Page_Load事件中写: //FileS ...
- Java 读取Json文件内容
读取json文件为String类型: import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logge ...
- package.json文件内容介绍
概述 每个项目的根目录下面,一般都有一个package.json文件,定义了这个项目所需要的各种模块,以及项目的配置信息(比如名称.版本.许可证等元数据).npm install命令根据这个配置文件, ...
- jquery 获取 json文件内容后,将其内容显示到 下拉列表框中,再将下拉列表中的内容,显示到文本框中
<script type="text/javascript"> $(function(){ $("#huoqv").click(function() ...
- CCLablettf读取显示xml文件内容显示中文
CCDictionary *strings = CCDictionary::createWithContentsOfFile("tips2.xml"); const char *h ...
- Sencha touch 2 入门 -------- DataView 显示服务器端JSON文件数据
今天学习了下DataView如何显示JSON文件数据,废话不多说,直接贴代码: 首先看下文件目录: 然后看下我们要处理的JSON文件,bookInfo.json. { "success&qu ...
- ios本地文件内容读取,.json .plist 文件读写
ios本地文件内容读取,.json .plist 文件读写 本地文件.json .plist文件是较为常用的存储本地数据的文件,对这些文件的操作也是一种常用的基础. 本文同时提供初始化变量的比较标准的 ...
- python操作json文件获取内容
写case时,将case 写到json文件比写到,写python一定要学会处理json 以下,是要处理的json 处理操作包括:打开json文件,获取json文件内容,关闭json文件,读取内容中的对 ...
- 八、Delphi10.3读取JSON文件,并修改JSON数组一条内容后保存到文件
一.我们有一个JSON文件,如下: { "在野": [ { "城池": 0, "武将": 74, "登场年": 190 ...
随机推荐
- ES6新特性6:模块Module
本文摘自ECMAScript6入门,转载请注明出处. 一.Module简介 ES6的Class只是面向对象编程的语法糖,升级了ES5的构造函数的原型链继承的写法,并没有解决模块化问题.Module功能 ...
- linux 使用错误总结
1.执行./shutdown.sh或./startup.sh命令,报错”Permission denied“(用户没有权限),执行以下语句: chmod u+x *.sh
- 记一次js之button问题
问题描述:记得某天,发现一件让我非常气愤的事情,居然因为一个按钮导致页面跳转失败或者是根本跳转不了界面,哪怕404也不给我报. 问题回现步骤: (1)正常输入url localhost:8080/te ...
- git checkout -b
创建分支: $ git branch mybranch切换分支: $ git checkout mybranch创建并切换分支: $ git checkout -b mybranch 更新master ...
- Algorithms: Design and Analysis, Part 1 - Programming Assignment #1
自我总结: 1.编程的思维不够,虽然分析有哪些需要的函数,但是不能比较好的汇总整合 2.写代码能力,容易挫败感,经常有bug,很烦心,耐心不够好 题目: In this programming ass ...
- 2018-2019赛季最后的随想/$\rm{NOIP2018}$游记·启示录
他看着眼前的屏幕,静静地发呆. 他不知道迎接他的将会是什么,后天的\(\rm{NOIp}\)终究是个谜. 刚刚给机房里其他人讲完期望的他,打心底觉得自己没有讲好,但效果似乎还可以. "希望别 ...
- 树莓派 log 日志 打印到 TXT
#include<stdio.h> #include <stdarg.h> #include <unistd.h> #include <stdint.h> ...
- 手动增加swap分区
第一步:创建一个大小为6G的文件:#dd if=/dev/zero of=/swapfile bs=1G count=6第二步:把这个文件变成swap文件:#mkswap /swapfile第三步:启 ...
- Msys/MinGW与Cygwin/gcc
一. MinGW MinGW 官方网站为 http://www.mingw.org/ MinGW,即 Minimalist GNU For Windows(GCC compiler suite).它是 ...
- redis缓存数据库入门教程
入门redis教程 前言: 应公司需求,最近学习了一下redis数据库的一些简单入门的教程,整理出来分享给大家,喜欢的可以关注和点赞哦~ 如文章中有不足之处求指正,谢谢 目录 ·什么是redis?为什 ...