Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Внутридоменная передача данных (https://javascript.ru/forum/events/15171-vnutridomennaya-peredacha-dannykh.html)

webmaster 15.02.2011 17:50

Внутридоменная передача данных
 
Здравствуйте.

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

Задача следующая: есть две независимые страницы с одного домена (допустим открытые в двух вкладках в одном браузере: site.com/win1.html и site.com/win2.html). Я хочу чтобы при нажатии на какой-то контрол на первой странице, срабатывала JS функция, определённая на второй. Причём необходимо, чтобы это взаимодействие было исключительно клиентским, без использования сервера.

Есть какие-то современные варианты решения этой задачи? Не обязательно кроссбраузерно, пусть это поддерживается только новыми браузерами, путь это какой-то HTML5.

Есть у кого-то варианты в какую сторону смотреть и каким механизмом можно воспользоваться для данного взаимодействия?

Спасибо.

dmitriymar 15.02.2011 18:14

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

webmaster 16.02.2011 12:53

Задача состоит как раз в том, что это две независимые страницы. Т.е. вторую нельзя открывать программно из первой.

dmitriymar 16.02.2011 13:31

никак тогда

Kolyaj 16.02.2011 13:40

Пусть одно окно имеет имя name1, другое -- name2. Восстанавливаем из name1 ссылку на name2
var w2 = window.open('', 'name2');

После чего взаимодействуем с переменной w2.

dmitriymar 16.02.2011 13:49

Kolyaj,
но варианте когда они просто открываются как окна сайта,открытые просто в разных вкладках\окнах ,это ведь не пройдёт?

Gvozd 16.02.2011 13:49

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

Gvozd 16.02.2011 13:51

Цитата:

Сообщение от dmitriymar
но варианте когда они просто открываются как окна сайта,открытые просто в разных вкладках\окнах ,это ведь не пройдёт?

также работает
к тому же, в отличии от моего варианта, можно сразу вызывать функцию

Kolyaj 16.02.2011 13:55

Цитата:

Сообщение от dmitriymar
но варианте когда они просто открываются как окна сайта,открытые просто в разных вкладках\окнах ,это ведь не пройдёт?

Именно для такого варианта я и писал решение. Когда окна открываются скриптами, проблем нет никаких.

webmaster 16.02.2011 15:52

Цитата:

Сообщение от Kolyaj (Сообщение 92769)
Пусть одно окно имеет имя name1, другое -- name2. Восстанавливаем из name1 ссылку на name2
var w2 = window.open('', 'name2');

После чего взаимодействуем с переменной w2.

Да, спасибо.

А если надо немного поменять условие: при нажатии на контрол на первой странице, что-то меняется (срабатывает определённая функция) на второй? Такое возможно?


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