2012-04-05 5 views
1

Я хочу запустить javascript один раз. Я попытался использовать сценарий с Dynamic Drive, но, похоже, он не работает со сценариями.Запуск javascript один раз

Я хочу, чтобы он запускался при первом посещении пользователем страницы, но затем снова не появляется.

Любая помощь?

Мой сценарий

<script src="http://www.google.com/jsapi"></script><script>google.load("jquery", "1");</script> 
<script type="text/javascript" src="http://connect.facebook.net/en_US/all.js#xfbml=1"></script> 
<script type="text/javascript"> 
    Username="___", <!-- Facebook Username Without http://facebook.com/ --> 
    Title="Join Our Facebook!", <!-- Title --> 
    Skin="01", <!-- 01 Through 04 --> 
    Time="15", <!-- Countdown In Seconds --> 
    Wait="0", <!-- Wait For Popup --> 
    Lang="en" 
</script> 
<script type="text/javascript" src="likeboxfbfanpro.js"></script> 
<script type="text/javascript">$(document).ready(function(){$().popupbox({ closeable: false });});</script> 
+1

Вы знаете, когда я наткнулся на сайт, который выскакивает что-то раздражает, я немедленно закройте вкладку и больше не заходите на сайт. Все, кого я знаю, делают то же самое. –

+0

Я пробовал использовать скрипт с частотой, но он не работает со скриптами. Это будет работать с текстом/изображениями, но когда я помещаю сценарий в Div, чтобы показать один раз, он все еще встает после первого раза –

+1

Пожалуйста, прекратите вводить текст, как это действительно раздражает читать. – asawyer

ответ

2

Вы можете сделать две вещи:

  • Установить куки после первого раза вы показать сообщение и тест на наличие куки на каждой загрузке страницы , Покажите сообщение, если файл cookie не существует, или пропустите его, если это произойдет.

  • Установить значение сеанса на стороне сервера (только сессия) или запись базы данных (охватывает сеансы, если вы можете каким-то образом идентифицировать возвращающегося посетителя (например, IP)) для управления HTML после того, как первая страница будет передана клиенту. Только отправьте сообщение html, если значение сеанса/базы данных еще не указано

Если вы хотите установить файлы cookie. Вот небольшой скрипт, который делает обработку печенья:

function createCookie(name,value,days) { 
if (days) { 
     var date = new Date(); 
     date.setTime(date.getTime()+(days*24*60*60*1000)); 
     var expires = "; expires="+date.toGMTString(); 
} 
else var expires = ""; 
    document.cookie = name+"="+value+expires+"; path=/"; 
} 

function readCookie(name) { 
var nameEQ = name + "="; 
var ca = document.cookie.split(';'); 
for(var i=0;i < ca.length;i++) { 
     var c = ca[i]; 
     while (c.charAt(0)==' ') c = c.substring(1,c.length); 
     if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length); 
} 
return null; 
} 

function eraseCookie(name) { 
    createCookie(name,"",-1); 
} 

Теперь в вашем коде, вы можете использовать это следующим образом:

if (!readCookie('alreadyShown')) { 
    .. add you show message code here... 
    createCookie('alreadyShown', true) 
} 
+0

Я бы установил cookie, но не знаю, с чего начать. –

+0

Отличный ответ! Прекрасно подходит для моей потребности. Я вижу строку "date.setTime (date.getTime() + (дни * 24 * 60 * 60 * 1000));". Это до тех пор, пока срок действия файла cookie не истечет, да? :) Что это значит? Это один день, одна неделя или один месяц? Я хотел бы иметь один день :) Спасибо, @koenpeters – zorensen

+0

Функция ожидает миллисекунды. Таким образом, его дни * 24 часа * 60 минут * 60 секунд * 1000, чтобы получить количество миллисекунд – koenpeters

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