Установить cookie - jquery модальный диалог подтверждения - PullRequest
0 голосов
/ 26 января 2012

Этот jquery_modal_confirm_dialogue работает после многих экспериментов. Когда наши посетители соглашаются с нашими Условиями использования, они перенаправляются на страницу продукта products.html

Мне отчаянно нужно установить печенье. - если они не согласны, когда они пытаются посетить products.html, это не отображается и снова отображает модальное диалоговое окно

Не могли бы вы дать мне подсказку? (jquery 1.3.2.min.js)

Это мой jqmodal.js

function confirm(msg,callback) {
  $('#confirm')
    .jqmShow()
    .find('p.jqmConfirmMsg')
      .html(msg)
    .end()
    .find(':submit:visible')
      .click(function(){
        if(this.value == 'yes')
          (typeof callback == 'string') ?
            window.location.href = callback :
            callback();
        $('#confirm').jqmHide();
      });
}


$().ready(function() {
  $('#confirm').jqm({overlay: 88, modal: true, trigger: false});

  // trigger a confirm whenever links of class alert are pressed.
  $('a.confirm').click(function() { 
    confirm('About to visit: '+this.href+' !',this.href); 
    return false;
  });
});// JavaScript Document

Это мой index.html:

 <a href="http://products.html/" class="confirm">Products</a> 

    <div class="jqmConfirm" id="confirm">

    <div id="ex3b" class="jqmConfirmWindow">
        <div class="jqmConfirmTitle clearfix">
            <h1>Terms of Use</h1>
        </div>

        <div class="jqmConfirmContent">
        <p class="jqmConfirmMsg"></p>
            <p>Important legal information</p></div>

        <input type="submit" value="Decline" />
        <input type="submit" value="Proceed" />
        </div>
    </div>

Ответы [ 2 ]

3 голосов
/ 26 января 2012

Если я правильно понимаю, вы хотите, чтобы они приняли подтверждение и установили cookie. Тогда в следующий раз, когда они появляются, не скрывают юридическую вещь.

Сначала получите этот плагин jQuery:

https://github.com/carhartl/jquery-cookie

Это позволяет вам делать такие вещи, как:

$.cookie("test", 1);

Таким образом, вы бы изменили свой код следующим образом:

function confirm(msg,callback) {
  $('#confirm')
    .jqmShow()
    .find('p.jqmConfirmMsg')
      .html(msg)
    .end()
    .find(':submit:visible')
      .click(function(){
        if(this.value == 'yes'){
           $.cookie("didAccept", 1, { expires : 365 }); //set cookie, expires in 365 days
           (typeof callback == 'string') ?
            window.location.href = callback :
            callback();
        }
        $('#confirm').jqmHide();
      });
}


$().ready(function() {
  $('#confirm').jqm({overlay: 88, modal: true, trigger: false});

  // trigger a confirm whenever links of class alert are pressed.
  $('a.confirm').click(function() { 
    if ($.cookie('the_cookie') == 1){
       //they already have cookie set
    }else{
       confirm('About to visit: '+this.href+' !',this.href); 
    }
    return false;
  });
});// JavaScript Document
0 голосов
/ 30 января 2012

Наконец-то работает!Я пропускал обратный вызов, когда файл cookie существует, и эти тики '' вокруг значения файла cookie.Вот как это выглядит.Пожалуйста, дайте мне знать, если есть какая-то очевидная ошибка.(большое спасибо за вашу поддержку)

function confirm(msg,callback) {
  $('#confirm')
    .jqmShow()
    .find('p.jqmConfirmMsg')
      .html(msg)
    .end()
    .find(':submit:visible')
      .click(function(){
        if(this.value == 'Proceed'){
           $.cookie("agreed_to_terms", '1', { expires : 1, path: '/' }); //set cookie, expires in 365 days
           (typeof callback == 'string') ?
            window.location.href = callback :
            callback();
        }
        $('#confirm').jqmHide();
      });
}


$().ready(function() {
  $('#confirm').jqm({overlay: 88, modal: 'true', trigger: false});

  // trigger a confirm whenever links of class alert are pressed.
  $('a.confirm').click(function() { 
    if ($.cookie('agreed_to_terms') == '1'){window.location.href = callback =
            callback()
       //they already have cookie set
    }else{
       confirm('About to visit: '+this.href+' !',this.href); 
    }
    return false;
  });
});// JavaScript Document
...