18.01.2012, 11:53
|
Аспирант
|
|
Регистрация: 29.09.2011
Сообщений: 42
|
|
запомнить окно
Цель такая, сраницу открыли в определённом окне, полазили по другим страницам сайта, если окно то же - true, если лазят в другой вкладке - false. Например пользователь настроил интерфейс сайта, и нужно, чтобы это распрастранялось только на данную вкладку браузера. Может я не понимаю каких-то простых вещей, но всё же, как «пометить» окно?
|
|
18.01.2012, 12:39
|
х.з
|
|
Регистрация: 21.11.2010
Сообщений: 4,588
|
|
нихрена не ясно.
отслеживать событие фокуса окна
|
|
18.01.2012, 23:32
|
Аспирант
|
|
Регистрация: 29.09.2011
Сообщений: 42
|
|
Вообще мне это для user javascript надо, на компе в Опере можно запускать скрипты для отдельного окна, в Опера Мобаил - нет. Суть в чём: пользователь для запуска скрипта вводит в адрнсную строку javascript:myJS.имяСкрипта(); Запускается скрипт, который запоминает, что он запущен, с помощью куки и local.storage, пользователь лазит по другим страницам, скрипт включен, всё ок, только нужно ограничить его действия в одной вкладке, тоесть скрипт работает только в той вкладке, где его запустили.
|
|
18.01.2012, 23:54
|
Аспирант
|
|
Регистрация: 29.09.2011
Сообщений: 42
|
|
(
function(){
try{
//функция вкл-выкл
function trololo(t){
t?myJS.setCookie("trololo",1,{path:"/"}):myJS.setCookie("trololo",null,{expires:-1,path:"/"});
//в зависимости от параметра сохранить куку или удалить
myJS.trololoGo();
}
function trololoGo(){
//сам скрипт
var war=myJS.getCookie("trololo");
//считали куки
if(war){
//если установлены, выполнить
/*
тело скрипта
*/
}}
window.myJS=window.myJS||{};
window.myJS.trololo=trololo;
window.myJS.trololoGo=trololoGo;
//перенесли в глобал
myJS.onReady(myJS.trololoGo);
//запустили при загрузке DOM
}catch(e){alert("trololo.js:\n"+e)}
})();
Функции для работы с куки и onReady, лежат в др. файлах, думаю их действие объяснять не надо. Скрипт упросил значительно, оставил только структуру. Скрипт будет работать во всех вкладках, а нужно только в той, в которой запустили. Как это сделать?
|
|
21.01.2012, 00:50
|
Профессор
|
|
Регистрация: 22.09.2010
Сообщений: 217
|
|
С какой стати он будет работать во всех вкладках, если у каждой вкладки свой объект window? Или я чего-то не понимаю?
|
|
21.01.2012, 01:07
|
sinistral
|
|
Регистрация: 28.03.2011
Сообщений: 5,418
|
|
в консоль
window.name = "just fine";
далее, проверяем. там же :
alert(window.name); //just fine.
откройте ещё вкладку и проверьте window.name в ней. будет "" (пустая строка)
теперь в "помеченной" вкладке потыкайте на ссылки. напр, новые сообщения. далее опять проверьте имя окна :
alert(window.name); //just fine.
таким образом можно запомнить окно.
Последний раз редактировалось melky, 25.01.2012 в 02:20.
|
|
21.01.2012, 01:34
|
Профессор
|
|
Регистрация: 22.09.2010
Сообщений: 217
|
|
И я про то же.
Кстати, trololo() и war - это сильно
Хотя, ИМХО лучше чем var var
Последний раз редактировалось popov654, 21.01.2012 в 01:37.
|
|
24.01.2012, 16:55
|
Аспирант
|
|
Регистрация: 29.09.2011
Сообщений: 42
|
|
popov654,
это user js, запуск висит на onReady, будет работать во всех окнах
|
|
24.01.2012, 16:58
|
Аспирант
|
|
Регистрация: 29.09.2011
Сообщений: 42
|
|
melky,
гавнокод, потому что код упрощал, впадлу было имена придумывать
|
|
25.01.2012, 02:04
|
Аспирант
|
|
Регистрация: 29.09.2011
Сообщений: 42
|
|
Сообщение от melky
|
решил задачу другим способом, более трудоёмким и кодоёмким.
|
Можно подробнее пожалуйста?
|
|
|
|