2012-02-15 4 views
0

Я работаю над проектом, в котором есть Flash-видео, которое автоматически запускается после загрузки на страницу. Мой клиент хотел бы, чтобы он только автоматически запускался при первом посещении страницы. Последующие посещения (в том же сеансе) будут загружать видео, но сохраняйте его приостановленным.Понимание файлов cookie (с использованием jQuery cookie plugin.)

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

//wait until everything has loaded 
$(window).load(function(){ 

    //set a cookie 
    $.cookie('welcome_cookie', 'welcome'); 

    //check for the cookie and call the pause function 
    if($.cookie('welcome_cookie')){ 
     controlPlayback('pause'); 
    } 
}); 

Это работает, но он делает паузу видео на первый раз ... Как сделать так, чтобы функция воспроизведения срабатывает только при возвращении на эту страницу?

+0

Просто инвертируйте заказ. Первый тест, а затем добавьте файл cookie. – deantoni

ответ

4

Просто переключите заказ, чтобы установить файл cookie после первой проверки;

//wait until everything has loaded 
$(window).load(function(){ 

    //check for the cookie and call the pause function 
    if($.cookie('welcome_cookie')){ 
     controlPlayback('pause'); 
    } 

    //set a cookie 
    $.cookie('welcome_cookie', 'welcome'); 
}); 

Вы, наверное, уже не надо установить куки на каждой странице, так почему бы не просто установить куки, если подмигнули не установлен;

+0

Причина, по которой у меня есть $ (window) .load), так что я знаю, что флеш-плеер загрузился, прежде чем пытаться вызвать функцию воспроизведения. В противном случае я получаю неопределенную ошибку метода. –

+0

Спасибо @Stefan, что сделал трюк –

2

Для чего вам нужен куки-файл для этого файла, cookie передается на сервер и с сервера при каждом запросе и ответе соответственно. Таким образом, вы отправляете туда и обратно данные, которые вам действительно не нужны на сервере. То, что вам действительно нужно, это localstorage.

$(window).load(function(){ 

    //If not first visit then pause 
    if(localStorage['not_first_visit']){ 
     controlPlayback('pause'); 
    } 

    //Set 
    localStorage('not_first_visit')=true; 
}); 
+0

Что такое поддержка браузера для localStorage? Пока он будет работать с IE7 +, я бы хотел попробовать этот подход. –

+0

IE7 + определенно поддерживает localStorage. –

+0

интересно ... Я собираюсь попробовать это ... –

 Смежные вопросы

  • Нет связанных вопросов^_^