Javascript-форум (https://javascript.ru/forum/)
-   Javascript под браузер (https://javascript.ru/forum/css-html/)
-   -   Общение между окнами userscript (https://javascript.ru/forum/css-html/53119-obshhenie-mezhdu-oknami-userscript.html)

BETEPAH 21.01.2015 18:02

Общение между окнами userscript
 
Возможно ли userscript'ом:

1) как-то передавать данные через userscript?
(открыто несколько окон с одним адресом, нужно сравнить значение полученное userscript'ом в этих окнах)

2) закрыть окно?

3) переключиться в другое окно?

Интересует в основном под firefox + greasemonkey

BETEPAH 23.01.2015 10:27

на второй вопрос ответ найден:
В настройках about:config изменить параметр dom.allow_scripts_to_close_windows на true
В юзерскрипте окно будет закрываться с помощью
window.close()


первый вопрос, в принципе, тоже можно реализовать через localStorage, но это выглядит немного костылём. Может все-таки есть в юзерскрипте возможность "общения" между окнами? Какая-то общая область видимости?

MallSerg 23.01.2015 14:43

https://developer.mozilla.org/en-US/...ith_the_add-on
механизм в расширениях имхо в хроме писать такое заметно проще

Цитата:

Сообщение от BETEPAH
Может все-таки есть в юзерскрипте возможность "общения" между окнами? Какая-то общая область видимости?

JS строго однопоточен в нем принципиально не может быть общей области видимости иначе весь браузер должен будет работать в одном потоке.
В JS используется механизм асинхронных событий обычно это траЛаЛа.PostMessage ( ..... ) объекты там передавать нельзя по очевидным причинам только примитивные типы.

А чем не устраивает localStorage есть же событие window.storage ? (имхо простое очевидное понятное решение без танцов с бубном).

Aetae 23.01.2015 14:55

MallSerg, это если писать через sdk. Если писать аддон для ff вручную то там всё проще(внезапно), ибо сам интерфейс на js написан.

А общаться да - через localStorage логичней всего.

Safort 23.01.2015 15:22

BETEPAH, оно?
http://habrahabr.ru/post/154639/
http://www.sitepoint.com/javascript-...workers-html5/

MallSerg,
Цитата:

JS строго однопоточен в нем принципиально не может быть общей области видимости иначе весь браузер должен будет работать в одном потоке.
Так в браузере не только JS есть, но и доступ к новомодным API.

BETEPAH 23.01.2015 15:27

Цитата:

Сообщение от MallSerg
А чем не устраивает localStorage

перфектционист внутри нудит. Говорит, что если два человека находятся в одной комнате, то чтоб поговорить между собой не обязательно через окно кричать третьему чтоб передал слова.
А так, в принципе, уже реализовал, через localStorage.
Кстати, пробовал через sessionStorage сначала, но не получилось.

Последний вопрос остался. Сделать юзерскриптом активным окно какое-то можно? Без вызова модальных алертов, конечно.

BETEPAH 23.01.2015 15:28

Цитата:

Сообщение от Safort

Ухтыш! Спасибо, вникаю.


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