Как выполнить скрипт один раз только при первом заходе на страницу?
Есть некая форма которую нужно автоматом подсунуть без участия пользователя. Все работает, но зацикливается. Не могу сделать что б один раз только сработало.
Вот сам скрипт после формы: window.addEvent('domready', function() { $('addtocart_501022b3a18e1').submit(); }); |
fender2k5,
После успешного заполнения - поставьте куки При входе проверяете - есть кук или нет перед выдачей формы |
А можно плз с примерами, а то в яве новичок вообще. И мне нужно что б при перезагрузке страницы то же не отрабатывало повторно. Заранее спс.
|
fender2k5,
Куки - это такие файлы, содержащие какую-либо инфу в браузере (они не удаляются после перезагрузки итд) http://www.codenet.ru/webmast/js/Cookies.php |
А существует ли способ без использования кук ?
|
fender2k5,
LocalStorage - думаю , если кроссбраузерно - по коду больше |
Deff,
я бы не стал ради этого использовать LocalStorage, они насколько я знаю нужны для того, что бы хранить большой объем информации |
9xakep,
я б тоже - но чел осведомляецо Вот готовый скрипт куков пост 2 http://javascript.ru/forum/misc/2942...tml#post184541 И ниже - пояснения |
Так все таки копать лучше в сторону кук ? Ок. Спс...будем ковырять...
|
Условие если кука есть : if(getcookie('Name'))
А как будет обратное условие если такой куки нет? |
if(!getcookie('Name'))
|
Цитата:
Практически получилось то что хотелось, но если после отработки скрипта обновить страницу опять он повторно выполняется, хотя по идее не должен так как уже присутствует кука. Не знаю на сколько верно, но полный код с формой у меня такой: <form id="addtocart_501022b3a18e1" class="addtocart_form" onsubmit="handleAddToCart( this.id );return false;" name="addtocart" method="post" action="/index.php"> <input type="hidden" value="com_virtuemart" name="option"> <input type="hidden" value="shop.cart" name="page"> <input type="hidden" value="cartAdd" name="func"> <input type="hidden" value="125" name="prod_id"> <input type="hidden" value="125" name="product_id"> <input type="hidden" value="1" name="quantity"> <input type="hidden" value="" name="set_price[]"> <input type="hidden" value="" name="adjust_price[]"> <input type="hidden" value="" name="master_product[]"> <input type="hidden" value="80" name="Itemid"> </form> <script type="text/javascript"> if(!getcookie('Posted')) { window.addEvent('domready', function() { $('addtocart_501022b3a18e1').submit(); }); } function setcookie(a,b,c) {if(c){var d = new Date();d.setTime(d.getTime()+c);}if(a && b) document.cookie = a+'='+b+(c ? '; expires='+d.toUTCString() : '');else return false;} function getcookie(a) {var b = new RegExp(a+'=([^;]){1,}');var c = b.exec(document.cookie);if(c) c = c[0].split('=');else return false;return c[1] ? c[1] : false;} setcookie('Posted',true,24*60*60*1000) //Кук на сутки </script> |
<form id="addtocart_501022b3a18e1" class="addtocart_form" onsubmit="handleAddToCart( this.id );return false;" name="addtocart" method="post" action="/index.php"> <input type="hidden" value="com_virtuemart" name="option"> <input type="hidden" value="shop.cart" name="page"> <input type="hidden" value="cartAdd" name="func"> <input type="hidden" value="125" name="prod_id"> <input type="hidden" value="125" name="product_id"> <input type="hidden" value="1" name="quantity"> <input type="hidden" value="" name="set_price[]"> <input type="hidden" value="" name="adjust_price[]"> <input type="hidden" value="" name="master_product[]"> <input type="hidden" value="80" name="Itemid"> </form> <script type="text/javascript"> function setcookie(a,b,c) {if(c){var d = new Date();d.setTime(d.getTime()+c);}if(a && b) document.cookie = a+'='+b+(c ? '; expires='+d.toUTCString() : '');else return false;} function getcookie(a) {var b = new RegExp(a+'=([^;]){1,}');var c = b.exec(document.cookie);if(c) c = c[0].split('=');else return false;return c[1] ? c[1] : false;} if(!getcookie('Posted')) { setcookie('Posted',true,24*60*60*1000) //Кук на сутки ( function() {window.addEvent('domready', function() { $('addtocart_501022b3a18e1').submit(); });}()) } </script> |
Эффект остался тот же, ладно это не критично, на том этапе вряд ли кто-то будет обновлять страничку, видимо такая специфика работы virtuemarta ) Спасибо за помощь! )
|
Цитата:
|
Часовой пояс GMT +3, время: 11:59. |