Такая ситуация - реализовывал кроссбраузерную загрузку файлов через JS. В локале работает Но при попытке использования на реальном сайте - не работает в IE от 8.
Предполагаю что проблема в междоменном обращении iframe. Может кто то с этим сталкивался.
Вот код на Jquery
var uploader = {};
uploader.loadInput = function(id,callback){
if (!document.createElement) return null;
var image = $("#"+id); //Получение файла(Реализовывалось для загрузки изображений)
var add = 0;
var parent = 0;
if(image.prev().length != 0) add = image.prev(); //Если предыдущий элемент существует
else parent = image.parent(); //Иначе родитель
var frame = this.createIFrame(id); //Получение фрейма
var form = this.createForm(id,image); //Создание формы для фрейма
if(parent == 0)add.after(form).after(frame); //Добавляем фрейм за предыдущим элементом
else parent.prepend(form).after(frame); //Добавляем фрейм в родителя
/*Обработка события удачной загрузки IFRAME */
frame.children("iframe").on("load",function()
{
var result = jQuery.parseJSON(frame.children("iframe").contents().find('body').text()); //Получение результов
callback(result,image); //Запуск обработчика
//Полный сброс параметров - возвращение к нормальному состоянию
form[0].reset();
if($("#"+id).length != 0)
{if(parent == 0)add.after(image);
else parent.prepend(image);}
form.remove();
frame.remove();
});
form.submit();
};
uploader.createIFrame = function(id)
{
var div = $(document.createElement("DIV"));
var test = "<iframe style=\"display:none\" src=\"about:blank\" id=\""+"iframe_"+id+"\" name=\""+"iframe_"+id+"\"></iframe>";
div.html(test);
//var frame = $(document.createElement("IFRAME")).css("display","none").attr("id","iframe_"+id).attr("name","iframe_"+id);
return div;
};
uploader.createForm = function(id,image)
{
var form = $(document.createElement("FORM")).attr("id","form_"+id).attr("target","iframe_"+id).append(image).attr("action",image.attr("url")) //Получение ссылки - куда делать запрос
.attr("method","POST").attr("enctype","multipart/form-data");
var input = $(document.createElement("INPUT")).attr("type","hidden")
.attr("name","csrf")
.attr("value",infiny.csrf);
form.append(input);
return form;
};