Можно создать собственные "DOM", загрузив HTML из строки в Javascript? - PullRequest
0 голосов
/ 17 октября 2010

Я пытаюсь разобрать HTML в браузере. Браузер получает 2 HTML-файла в виде строк, например. HTML1 и HTML2.

Теперь мне нужно проанализировать эти «документы» так же, как и текущий документ. Вот почему мне было интересно, возможно ли создавать пользовательские документы на основе этих строк HTML (эти строки предоставляются сервером или пользователем).

Так что, например, будет действительным следующее: $ (Html1Document). $ ( "# SomeDivID") ...

Если что-то неясно, пожалуйста, попросите меня уточнить еще.

Спасибо.

Ответы [ 3 ]

3 голосов
/ 17 октября 2010
var $docFragment = $(htmlString);

$docFragment.find("a"); // all anchors in the HMTL string

Обратите внимание, что при этом игнорируются любые теги структуры документа (<html>, <head> и <body>), но все содержащиеся в нем теги будут доступны.

1 голос
/ 17 октября 2010

С помощью jQuery вы можете сделать это:

$(your_document_string).someParsingMethod().another();
1 голос
/ 17 октября 2010

Вы всегда можете добавить свой HTML к некоторому скрытому div (хотя innerHTML или jQuery .html(..)).Он не будет обрабатываться точно как новый документ, но все же сможет искать его содержимое.

У него есть несколько побочных эффектов.Например, если ваш html определяет какие-либо теги script, они будут загружены.Кроме того, браузер может (и, вероятно, будет) удалять html, body и подобные теги.

edit
Если вам конкретно нужны title и подобные теги, вы можетепопробуйте iframe загружать контент с вашего сервера.

...