Запретить запуск расширения Chrome на странице, включенной в спецификации соответствия - PullRequest
0 голосов
/ 13 июня 2019

Я использую расширение Chrome для извлечения данных со страниц, созданных внешним веб-сайтом, к которым у меня нет доступа. Как часть процедур, я хочу, чтобы одна такая страница (A) открывала другую (B) из того же домена на отдельной вкладке, но я не хочу, чтобы страница B запускала скрипт расширения. Страница B должна быть «ведомой» для страницы A и управляться кодом, выполняющимся на странице A. Проблема заключается в том, как передать сообщение о том, что страница B не должна запускать сценарий.

Когда создается страница B, это можно решить, добавив в URL поддельный хэштег "#dont_run_content_js" или тому подобное, который может быть перехвачен и интерпретирован сценарием.

var url = window.location.href;
if(!url.includes("#dont_run_content_js")){//run main script}

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

На странице, где каждая ссылка явно указана с использованием атрибута href, эти значения href можно манипулировать, чтобы включить хэштег сообщения. Но в этом случае <a> элементов нет - связывание происходит через непрозрачный механизм, который отправляет закодированные данные из пользовательских атрибутов в удаленный javascript. Поэтому необходимо найти другой вариант, чтобы «связать» новую страницу с сообщением скрипту. Это возможно? Решения с использованием jQuery являются скорее бонусом, чем препятствием.

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