Как сделать загрузку файлов через IFRAME чтобы работало от IE7?

Такая ситуация - реализовывал кроссбраузерную загрузку файлов через 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+"\"&gt;&lt;/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;
	};
  • Вопрос задан
  • 2550 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы