Показать сообщение отдельно
  #6 (permalink)  
Старый 24.05.2008, 11:30
Новичок на форуме
Отправить личное сообщение для Vladimir Посмотреть профиль Найти все сообщения от Vladimir
 
Регистрация: 22.05.2008
Сообщений: 8

Спасибо за развернутый ответ. Я смотрел туториалы 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 файле.
Может защиту какую-то снять надо с основного документа или дать ксуловскому скрипту какие-то привилегии?
Ответить с цитированием