Я использую расширение 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 являются скорее бонусом, чем препятствием.