Могу ли я загрузить весь HTML-документ во фрагмент документа в Internet Explorer?

Вот кое-что, с чем у меня возникли небольшие затруднения. У меня есть локальный клиентский скрипт, который должен позволить пользователю получать удаленную веб-страницу и искать на этой странице формы. Чтобы сделать это (без регулярного выражения), мне нужно проанализировать документ в полностью проходимый объект DOM.

Некоторые ограничения, которые я хотел бы подчеркнуть:

  • Я не хочу использовать библиотеки (например, jQuery). Слишком много наворотов для того, что мне нужно здесь делать.
  • Ни при каких обстоятельствах не должны выполняться сценарии с удаленной страницы (из соображений безопасности).
  • Должны быть доступны DOM API, такие как getElementsByTagName .
  • Это должно работать только в Internet Explorer, но как минимум в 7.
  • Давайте представим, что у меня нет доступа к серверу. Да, но я не могу использовать его для этого.

Что я пробовал

Предполагая, что у меня есть полная строка документа HTML (включая объявление DOCTYPE) в переменной html , вот что я пробовал до сих пор:

var frag = document.createDocumentFragment(),
div  = frag.appendChild(document.createElement("div"));

div.outerHTML = html;
//-> results in an empty fragment

div.insertAdjacentHTML("afterEnd", html);
//-> HTML is not added to the fragment

div.innerHTML = html;
//-> Error (expected, but I tried it anyway)

var doc = new ActiveXObject("htmlfile");
doc.write(html);
doc.close();
//-> JavaScript executes

Я также попытался извлечь узлы и из HTML и добавить их в элемент внутри фрагмента, но безуспешно.

Есть ли у кого-нибудь идеи?

42
задан dda 15 November 2012 в 14:33
поделиться