Здесь кое-что, с чем я немного затруднился. У меня есть локальная клиентская сторона script, которая должна позволять пользователю извлекать удаленную веб-страницу и выполнять поиск этой итоговой страницы для форм. Чтобы сделать это (без регулярного выражения), мне нужно проанализировать документ в полностью доступный объект 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>
внутри фрагмента, все равно не повезло.
Есть ли у кого-нибудь идеи?