Я создаю расширение Firefox, которое позволяет оператору выполнять различные действия, изменяющие содержимое HTML-документа. Оператор не редактирует HTML, он выполняет другие действия, а мое расширение модифицирует документ, вставляя элементы, добавляя атрибуты и так далее.
Когда оператор закончит работу, он должен иметь возможность сохранить HTML-документ в виде файла (или разрешить моему расширению отправить его в пункт назначения в Интернете, но это не требуется, поскольку он может отправить сохраненный файл по электронной почте).
Я подумал, что, возможно, изменения, сделанные кодом javascript в моем расширении, будут отражены в документе HTML, но когда я прошу браузер Firefox «просмотреть исходный код» после внесения изменений, он отображает исходный текст HTML.
Мои вопросы:
#1: Как проще всего оператору сохранить HTML-документ со всеми изменениями, внесенными моим расширением?
# 2: Каков самый простой способ для кода javascript в моем расширении обработать содержимое HTML-документа и записать в HTML-файл на локальном диске?
#3: Является ли какой-либо допустимый HTML-контент неспособным к точному представлению в сохраненном файле?
#4: Является ли TreeWalker частью решения (см. ниже)?
Пара наблюдений из моего исследования:
Я читал об объекте TreeWalker, который, кажется, обеспечивает довольно безболезненный способ для расширения пройти через все (? или почти все?) в HTML-документе. Но раскрывает ли он все, чтобы все в оригинале (и моих модификациях) можно было сохранить, не теряя ничего важного?
Проходит ли TreeWalker по HTML-документу в «правильном порядке» — порядке, необходимом моему расширению для создания исходного и/или измененного HTML-документа?
Что-нибудь неясное или сложное в этих проблемах?