Ajax IE6:下载html而不执行包含的javascript,格式为ISO-8859-1字符集
下面是一段代码(使用jquery),我用来下载一个html文件,从中提取一个表及其内容Ajax IE6:下载html而不执行包含的javascript,格式为ISO-8859-1字符集,ajax,iframe,internet-explorer-6,character-encoding,Ajax,Iframe,Internet Explorer 6,Character Encoding,下面是一段代码(使用jquery),我用来下载一个html文件,从中提取一个表及其内容 var url = $('#url').val(); // url to access if ($.browser.msie && $.browser.version.substr(0,1)<7) { var frame = $('<iframe/>').css('display', 'none').attr('src', url ); frame.appendTo('
var url = $('#url').val(); // url to access
if ($.browser.msie && $.browser.version.substr(0,1)<7) {
var frame = $('<iframe/>').css('display', 'none').attr('src', url );
frame.appendTo('body')
.load(function() {
var data = frame.contents()[0].firstChild.innerHTML;
frame.remove; // kill the frame
extractReport(data); // extract the data table
}); // load
}
else {
$.ajaxSetup({
'beforeSend' : function(xhr) {
xhr.overrideMimeType('text/html; charset=ISO-8859-1');
}
}); // ajaxSetup
$.ajax(
{
async:false,
url:url,
error : function(XMLHttpRequest, textStatus, errorThrown) {
alert(textStatus );
},
success:
function(data, textStatus, XMLHttpRequest) {
extractReport(data);
}
}); // ajax
} //else
var url=$('#url').val();//要访问的url
if($.browser.msie&&$.browser.version.substr(0,1)
html可以通过activeX以纯文本形式下载吗?我只知道ActiveXObject(“Msxml2.XMLHTTP.6.0”),但它失败了
不支持。事实上,在迄今为止的任何版本中,IE都不支持XMLHttpRequest Level 2的OverrideMetype
方法,无论是使用本机JScript(IE7+)还是旧式ActiveX实现
overrideMimeType
实际上是让XMLHttpRequest接收与标记为不同字符集的文本内容的唯一方法(UTF-8,如果未指定内容类型
头字符集,则为
-set字符集无效,因为只有HTML解析器才会读取该字符集,而XMLHttpRequest
不是HTML解析器)。无法使用XMLHttpRequest
检索原始二进制文件
[iframe方法]而不执行包含的javascript
嗯,有点像。有一个IE6+特有的、通常相当可疑的属性,它会改变子文档的区域。除了其他副作用外,这通常会导致关闭JavaScript,但实际发生的情况会受到用户的IE受限站点区域设置的影响,所以它不是真正可靠的
var frame = $('<iframe security="restricted"/>').css('display', 'none').attr('src', url);
很好!!就是这么做的。非常感谢。请克制使用。如果我们谈论的是一个设置非常一致的企业内部网应用程序,它可以工作,但它并不真正适合开放互联网。
if ('XMLHttpRequest' in window && 'overrideMimeType' in new XMLHttpRequest()) {
// xmlhttp branch
} else if {
// nasty iframe branch
}