Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Выполнение JS только при наличии открытого сайта (https://javascript.ru/forum/misc/80156-vypolnenie-js-tolko-pri-nalichii-otkrytogo-sajjta.html)

web1 03.05.2020 17:58

Выполнение JS только при наличии открытого сайта
 
Есть сайт A со скриптом и сайт B. Нужно, чтобы скрипт на сайте A выполнялся ТОЛЬКО, ЕСЛИ ОТКРЫТ сайт B.

Если юзер закрыл сайт B - скрипт перестаёт выполняться. Снова открыл сайт B - скрипт на сайте A продолжает работать.

Пожалуйста, подскажите где искать, функцию или фреймворк, я уж разберусь самостоятельно. Спасибо всем

MallSerg 03.05.2020 20:21

Нельзя контролировать действия пользователя на его компьютере.

Можно контролировать только действия пользователя на своем сайте.
Именно из за такой политики и существуют яндекс метрики гугланалитик и рекламные сети.

это должно быть очевидно.

od0201 08.05.2020 02:04

Как я понимаю, у Вас проблема не с тем как запустить скрипт или определить открыт ли сайт, а с тем как общаться между двумя скриптами на разных сайтах.

Если сайты находятся в одном домене и одном браузере, тогда между вкладками можно общайтесь через localStorage, для этого и событие есть
window.onstorage = ()=>{}

Если сайты находятся в разных доменах, но в одном браузере, тогда между вкладками общайтесь в расширении через background

Если сайты находятся в разных браузерах, тогда между вкладками общайтесь через Бэк-энд

Malleys 08.05.2020 11:38

Цитата:

Сообщение от od0201
общайтесь через localStorage

Оно не предназначено для этого

Цитата:

Сообщение от od0201
общайтесь в расширении через background

Ещё более удивительно, теперь надо скачивать расширение!

Цитата:

Сообщение от od0201
общайтесь через Бэк-энд

А вот это хорошо, сокеты как раз предназначены для этого!

od0201 08.05.2020 12:20

да, есть сокеты и это панацея, но чем дальше по пунктам, тем сложнее с реализацией.

localStorage не предназначено. Есть событие, которое срабатывает на изменение localStorage во всех вкладках, кроме той что внесло изменение. Мы его создали, но оно не предназначено, поэтому не используйте данный инструмент. Согласитесь, не логично. Да, не идеально, но просто и поэтому не вижу причин не использовать для мелких задач

по условию задачи можно понять что оба сайта будут работать в единственном экземпляре и будут запускаться разработчиком и не вижу проблем в запуске расширения. Иначе нет смысла такое городить через браузер. пусть сервер отслеживает где открыты сайты В и сам выполнят функцию Сайта А, кстати это и есть 4 решение данной задачи.

еще по поводу расширение, в условии не указано что у нас полный доступ к сайтам, поэтому если это и так, то без расширения нам не обойтись, хотя бы для того чтоб внедрить наш скрипт на данные сайты


Часовой пояс GMT +3, время: 09:32.