- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Маркетинг для шоколадной фабрики. На 34% выше средний чек
Через устранение узких мест
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Приветствую, есть скрипт который открывает окно и потом ждет пока его не закроют,
var socials = {
myWin : '',
interval : '',
socialBT :function (url, param){
var features, w = 750, h = 770;
var top = (screen.height - h)/2, left = (screen.width - w)/2;
if(top < 0) top = 0;
if(left < 0) left = 0;
features = 'top=' + top + ',left=' +left;
features += ',height=' + h + ',width=' + w + ',resizable=0, toolbar=0, scrollbars=yes';
socials.myWin = window.open(url+param, 'displayWindow', features);
socials.interval = setInterval(function(){
if(socials.myWin != null)
{
if(socials.myWin=='' || socials.myWin.closed)
{
alert('OK');
clearInterval(socials.interval);
}
}
},500);
}
}
Но в некоторых ситуациях возникает ошибка
Permission denied to access property 'valueOf'
[Прерывать на этой ошибке] if(socials.myWin=='' || socials.myWin.closed)
Я не могу понять с чем она связана и не могу ее решить. Ошибка возникает в ФФ. Возможно кто то сталкивался и знает решение этой проблемы?
... Я не могу понять с чем она связана и не могу ее решить. Ошибка возникает в ФФ. Возможно кто то сталкивался и знает решение этой проблемы?
фдуке('OK'); ;)
фдуке('OK'); ;)
Сори за опечатку)), конечно же alert('OK'); но это не та ошибка, вопрос так и остается открытым(
free-dev, попробуйте такой вариант ("or" вместо "||")
if(socials.myWin=='' or socials.myWin.closed)
Или еще так
if(socials.myWin)
вместо
if(socials.myWin != null)
gormarket, спасибо за вариант, но к сожалению он не помог. Но вроде я разобрался в чем проблема когда идет проверка каждую 0.5 секунды if(socials.myWin=='' || socials.myWin.closed) по началу пока модальное окно не загрузилось условие socials.myWin=='' имеет место быть, но вот потом socials.myWin принимает значение windowObject и данное условие уже не верно и ФФ ругается на то что так делать нельзя. Пришлось отказатся от socials.myWin=='' и оставить условие if(socials.myWin.closed), НО это не нравится опере 11.11, она выдает Uncaught exception: ReferenceError: Security error: attempted to read protected variable: closed Есть возможность как то кроссбраузерно проверить закрыто окно или нет?
gormarket, спасибо за вариант, но к сожалению он не помог. Но вроде я разобрался в чем проблема когда идет проверка каждую 0.5 секунды if(socials.myWin=='' || socials.myWin.closed) по началу пока модальное окно не загрузилось условие socials.myWin=='' имеет место быть, но вот потом socials.myWin принимает значение windowObject и данное условие уже не верно и ФФ ругается на то что так делать нельзя. Пришлось отказатся от socials.myWin=='' и оставить условие if(socials.myWin.closed), НО это не нравится опере 11.11, она выдает Uncaught exception: ReferenceError: Security error: attempted to read protected variable: closed Есть возможность как то кроссбраузерно проверить закрыто окно или нет?
заменить:
socials.myWin:'' на socials.myWin:null
socials.myWin=='' на socials.myWin==null
или вообще проверять typeof(socials.myWin)
как вариант
еще одно предложение:
попробуйте вынести вывод сообщения за пределы функции в setInterval
вместо
alert('OK');
использовать
setTimeout("alert('OK')", 100);
Или просто поменяйте местами две строки
сначала
clearInterval(socials.interval);
и только потом
alert('OK');
(к сожалению добиться появления ошибки с моими браузерами не удается, все работает)
Спс всем за предложения, в данный момент привел скрипт к виду
var socials = {
myWin : null,
interval : '',
socialBT :function (url, param){
var features, w = 750, h = 770;
var top = (screen.height - h)/2, left = (screen.width - w)/2;
if(top < 0) top = 0;
if(left < 0) left = 0;
features = 'top=' + top + ',left=' +left;
features += ',height=' + h + ',width=' + w + ',resizable=0, toolbar=0, scrollbars=yes';
socials.myWin = window.open(url+param, 'displayWindow', features);
socials.interval = setInterval(function(){
if(socials.myWin != null)
{
if(socials.myWin.closed == true)
{
//alert(socials.myWin.closed);
alert('OK');
socials.myWin = null;
clearInterval(socials.interval);
}
}
},500);
}
}
В ФФ работает, во всем нелюбимом ИЕ тоже, а вот опера ругается "Uncaught exception: ReferenceError: Security error: attempted to read protected variable: closed" неужели опера не знает closed?