Можно ли загрузить весь 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
Я также пытался извлечь<head>
а также<body>
узлы из HTML и добавление их в<HTML>
элемент внутри фрагмента, до сих пор не повезло.
У кого-нибудь есть какие-либо идеи?