Вот код (использующий 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('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
Моя проблема состоит в том, что, когда я использую xmlhttprequest активный-X объект в IE6, responseText содержит мусор для французских символов. Мне удалось обойти это с iframe (ie6, не поддерживают overrideMimeType, который я использую для Firefox). Но теперь JavaScript, содержавшийся в кадре HTML, выполняется. Существует ли путь в IE6 для загрузки моего файла HTML в корректном наборе символов, не выполняя JavaScript?
Примечание: Я не разрешен изменить конфигурацию Apache для принуждения набора символов ISO-8859-1.
Моя идея: HTML мог быть загрузкой как простым текстом с activeX? Единственным, который я знаю, является ActiveXObject ("Msxml2. XMLHTTP.6.0"), и это перестало работать.