2

Некоторые веб-сайты предпочитают использовать ссылки javascript вместо обычных ссылок HTML, что делает невозможным открытие таких ссылок на новых вкладках браузера, например, «javascript:OpenLink(908)» вместо «site.com/links/908».

Есть ли способ переписать эти сайты на ходу, используя плагин FireFox или скрипт GreaseMonkey?

Спасибо!

1 ответ1

0

Не в общем.

Если они выполняют JavaScript, то они не являются строго ссылками. Они заставляют браузер оценивать некоторый код, который что- то делает, а затем запрашивает браузер перенаправить вас.

Теоретически вы можете сделать расширение, которое будет:

  1. Подождите, пока страница загрузится.
  2. За каждую "ссылку JS" сделайте вид, что она нажата
  3. Перехват переадресации
  4. Переписать оригинальную ссылку JS на реальную ссылку, основанную на цели перенаправления

Есть некоторые проблемы с этим подходом, хотя:

  • Насколько я знаю, API расширения браузера (особенно API-интерфейс пользователя) не позволят вам перехватывать перенаправления.
  • Нажатие на ссылки может иметь нежелательные побочные эффекты на странице, которую вы просматриваете, например. он может отключить некоторые кнопки формы
  • Нет простого способа отличить "ссылки JS" от ссылок, которые предназначены для выполнения каких-либо действий на веб-сайте, но не перенаправляют вас куда-либо (типично для одностраничных приложений)
  • Эта процедура может частично зависеть от проблемы остановки, которая, как правило, неразрешима.

Существуют расширения, которые делают это для определенных сайтов (например, FB Purity может "исправить" ссылки в Facebook), но нет общего подхода, который бы работал везде

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .