Расширение открывает страницу, на которой есть контент включая кнопки с действиями

  • document.location = URL;
  • window.location = URL;
  • document.location.href = URL ;

Неоходимо предотвратить смену страницы, при нажатии на эти кнопки.

Пробовал отловить через nsIWebProgressListener.onLocationChange() и потом gBrowser.stop(), но данный метод не подходит, т.к. броузер со старой страницы уходит, я его останавливаю, и в результате получается пустая страница.

Пробовал отловить через addObserver(this,"http-on-modify-request",false). Проблема в том, что сюда валятся все реквесты и понять какой из них тот что нужно блокировать непонятно.

KML
Не проще ли будет пройтись по контенту, найти эти кнопки, и задизейблить их?

Нет, мне нужно в случае чего открыть эти ссылки в соседней вкладке.

okkamas_knife пишет
KML пишет

Нет, мне нужно в случае чего открыть эти ссылки в соседней вкладке.

ну дык кто мешает

hydrolizer пишет

Не проще ли будет пройтись по контенту, найти эти кнопки, и задизейблить их?

+ добавить рядом ссылочку.

Мешает то что это Javascript функции, так что простыми ссылочками не отделаешься.

Почему? Они же создают HTML-элементы.

Al_H пишет

Почему? Они же создают HTML-элементы.

Функции? Теоретически они могут делать всё что угодно, парсить тело функции в мои планы не входит :)

KML пишет

Функции? Теоретически они могут делать всё что угодно, парсить тело функции в мои планы не входит :)

а определить (переопределить) onclick для кнопок?

Shutnik пишет
KML пишет

Функции? Теоретически они могут делать всё что угодно, парсить тело функции в мои планы не входит :)

а определить (переопределить) onclick для кнопок?

Допустим переопределил, и что дальше? Парсить тело функции на предмет смены location? А остальной код этой функции кто выполнять будет?
Просто налицо явный просчет в API мозилы - сообщать в процессе смены location а не перед началом процесса.