Редактирование внешнего HTML-документа с помощью jQuery - PullRequest
0 голосов
/ 15 марта 2012

Мне нужно отредактировать HTML-документ с помощью jQuery, но все решения, которые я пробовал, очень строгие.

Я получаю документ с сервера, поэтому получаю его в виде строки.Чтобы разобрать документ, мне нужно добавить его в DOM.

Когда я добавляю его в тело, я теряю теги <html>, <head> и <body>, которые удаляютсябраузер (см. https://stackoverflow.com/a/3218941/654179).

Поэтому я попытался использовать iframe, который немного сложен: я должен использовать contentWindow.document, чтобы заполнить его вручную, а затем трюк с contents().find('*').html(), чтобы получить контент. Возможноесть более простой и понятный способ сделать это, но решение iframe также удаляет теги <html>, <head> и <body>. См. мой пример: http://jsfiddle.net/gNvYn/7/

Здесь есть еще одна хитрость: https://stackoverflow.com/a/6751201/654179 но я не смог использовать его для записи и чтения документа (мне нужно прочитать его для сохранения на сервере).

Итак, есть ли способ отредактировать (написать, затем прочитать) HTML-документ без потери структуры?

1 Ответ

1 голос
/ 15 марта 2012

Если вещи, которые вам нужно изменить, полностью находятся внутри тела, тогда есть обходной путь.Используйте методы javascript indexOf () и slice (), чтобы разбить строку на пре-тело (у которого <body> в качестве последних символов), пост-тело (у которого </body> в качестве первых символов) и тело (все всередина).Затем вставьте тело в DOM, манипулируйте им, вытащите его снова, используйте оператор javascript +, чтобы снова соединить три вместе, и отправьте обратно.Это немного глупо, и это не точно , что вы просили, но оно должно получить вас, куда вы идете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...