Спасибо за развернутый ответ. Я смотрел туториалы DOM и XUL. Перебробовал множество вариантов. Проблема, однако, в том, что скрипт расширения находится в chrome, а скрипт, который надо изменить - в основном документе. Т.е. сначала я получаю в хроме текст скрипта основного документа как
s=content.document.getElementsByTagName("script")[0].text;
это работает.
затем я меняю скрипт в переменной "s" и делаю обратное присвоение
сontent.document.getElementsByTagName("script")[0].text=s;
Инспектор DOM показывает измененный текст скрипта, однако страница в браузере прежняя - без учета изменений. replaceChild дает тот же результат.
Ставлю эксперимент - просто хочу удалить скрипт с главной страницы:
node=content.document.getElementsByTagName("script ")[0];
node.parentNode.removeChild(node);
Инспектор DOM показывает дерево уже без скрипта, но в браузере страница прежняя - со скриптом.
Нашел, что якобы для возможности модификации основного документа в XUL файле (где находится скрипт расширения) должен быть тэг
<browser type="content-primary"/>
Вставил. Все без изменений.
Получается, что все изменения отображаются только в дереве DOM и никак не затрагивают самого, загруженного в браузер, документа.
Но изменить-то нужно именно его. А как? Чего не хватает?
(То, что ума не хватает, то понятно).
Чего не хватает в хромовом скрипте. Или в XUL файле.
Может защиту какую-то снять надо с основного документа или дать ксуловскому скрипту какие-то привилегии?
|