Хукинг "Открыть в новой вкладке" и "Назад" - PullRequest
5 голосов
/ 15 декабря 2009

Я бы хотел разработать расширение для Firefox, которое работает, когда щелчок по ссылке открывает новую вкладку в результате атрибутов ссылки, а также при нажатии кнопки «Назад» (или эквивалентной).

Как я могу подключить эти две вещи в расширении?

Обновление: я запустил награду - надеюсь, ответ может привести к некоторому скрытому сайту документации для дополнений Firefox. То есть сайт, который не является кодовой базой Firefox. И не коллекция всех расширений, когда-либо написанных.

Ответы [ 3 ]

2 голосов
/ 23 декабря 2009

Мне кажется, что вы хотите избежать использования прослушивателя прогресса, потому что вы хотите иметь возможность реагировать на ответ, даже если нет страницы, на которую можно вернуться.

Если это так, пытались ли вы заменить новую вкладку временным URL-адресом?

Чтобы объяснить, что я имею в виду:

  1. Клики пользователей открывают новую вкладку для http://www.google.com
  2. Перенаправление на http://cannotwork/?http://www.google.com
  3. Сохранить как местоположение
  4. По любому запросу http://cannotwork/ отправить в дополнительное место

Просто как бы выбрасывать идеи здесь. Удачи.

Также есть дополнение «Назад к закрытию» для более ранних версий FF, которое заменило кнопку «Назад» на «Закрыть», когда вы были на «старте». Это может быть еще одна достойная идея. Единственная проблема заключалась в том, что он не мог поймать дель / назад на мышке. Поэтому он рекомендовал привязать кнопку мыши к Alt + Left (который был пойман).

2 голосов
/ 23 декабря 2009

Я постараюсь ответить и дать вам несколько треков, но помните, что это может зависеть от вашего номера версии Firefox (я знаю, вы не ищете страницу MDC, и я знаю, что она не всегда хорошо документирована, но вот что я нашел).

  • Новая вкладка: вам нужно добавить eventListener в некоторую функцию инициализации и сослаться на действие, которое вы хотите вызвать. Таким образом, вам не нужно беспокоиться о том, как новая вкладка называется
  • Обнаружение нажатой кнопки «Назад»: (новая функция начиная с Firefox 3.5) добавление прослушивателя прогресса на всех вкладках для обнаружения locationChange, а затем игра с «Местами» новой системы истории (начиная с Firefox 3) для сравните и посмотрите, совпадает ли новый URI с предыдущим. Не забывайте, что вы можете вернуться с помощью «Del» или «Alt» + «LeftArrow», чтобы вы не могли по-настоящему повторно реализовать действие кнопки «Назад» (в противном случае вы можете добавить наложение XUL и переопределить то, что вам нужно, но я мы никогда не делали этого раньше)
1 голос
/ 23 ноября 2010

Похоже, вы можете реализовать интерфейс nsISHistoryListener, чтобы получать уведомления, когда пользователь пытается вернуться.

OnHistoryGoBack

Уведомляет слушателя, когда пользователь нажимает кнопку «Назад» в браузере ИЛИ, когда пользователь пытается вернуться на одну страницу в истории другими способами, либо с помощью сценариев, либо с помощью nsIWebNavigation.

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