1

У меня есть форма HTML и IFRAME, как это:Как получить XML DOM в IE?

<form id="frmUpload" target="ifrTarget" action='http://....asmx/SampleMethod'> 
    <input name="title" /><br /> 
    ... 
    <input type="submit"/> 
</form> 
<iframe id="ifrTarget" name="ifrTarget"></iframe> 

атрибут Действие точки к моей веб-службы ASP.NET. Когда форма отправляется, IFRAME заполняется полученным XML. Мне нужно получить DOM этого XML-документа. Пока что мой код выглядит так:

var iframe = document.getElementById("ifrTarget"); 
var root = iframe.contentWindow.document.documentElement; 

Это прекрасно работает в браузерах FireFox, Chrome и Opera. Но это не работает в IE 6 & 7. Насколько я понимаю, в IE я получаю DOM документа HTML, который IE строит внутри, чтобы отображать подсветку синтаксиса для XML. Мне нужно, чтобы базовый XML не был изменен. Возможно ли это в IE?


Существует веская причина придерживаться формы и iframe, а не обращаться к веб-сервису через AJAX. К сожалению, AJAX не вариант для меня в данном конкретном случае.

+0

Можете ли вы объяснить, почему AJAX не является для вас вариантом? –

ответ

1

Нет, вы не можете получить немодифицированный XML таким образом с помощью IE. Фильтр MIME с «красивым принтером» XML заменит источник XML, как показано IE, с HTML, который показан пользователю.

Использование XHR или тому подобное является единственным реальным обходным решением.

0

Попробуйте связать XML с IFRAME с (даже несуществующим) CSS. Это должно помешать IE довольно печатать XML. Затем contentWindow.document должен содержать DOM полученного XML. Или вы можете захотеть получить содержимое документа в виде строки и проанализировать строку как XML. CSS связан с XML инструкцией по обработке следующим образом:

<? Xml-stylesheet href = "nonexistent.css" type = "text/css"? >

 Смежные вопросы

  • Нет связанных вопросов^_^