SORU
19 Mayıs 2011, PERŞEMBE


İletişim kutusu için 1 sn ve kaybolur çalışır?

Kullanıcı sayfayı ayrıldıktan sonra bir iletişim kutusu koşuyorum. Tek şey 1 sn ve kaybolur için çalışır? bind('beforeunload'), ile ilgisi var biliyorum ama iletişim okuyabilirsin daha erken ölür.

Nasıl oluyor bu durdurabilirim?

$(document).ready(function() {  

    // Append dialog pop-up modem to body of page
    $('body').append("<div id='confirmDialog' title='Confirm'><p><span class='ui-icon ui-icon-alert' style='float:left; margin:0 7px 20px 0;'></span>Are you sure you want to leave "   brandName   "? <br /> Your order will not be saved.</p></div>");

    // Create Dialog box
    $('#confirmDialog').dialog({
      autoOpen: false,
      modal: true,
      overlay: {
        backgroundColor: '#000',
        opacity: 0.5
      },
      buttons: {
        'I am sure': function() {
          var href = $(this).dialog('option', 'href', this.href);
          window.location.href = href;
        },
        'Complete my order': function() {
          $(this).dialog('close');
        }
      }
    });

    // Bind event to Before user leaves page with function parameter e
    $(window).bind('beforeunload', function(e) {    
        // Mozilla takes the
        var e = $('#confirmDialog').dialog('open').dialog('option', 'href', this.href);
        // For IE and Firefox prior to version 4
        if (e){
            $('#confirmDialog').dialog('open').dialog('option', 'href', this.href);
        }
        // For Safari
        e.$('#confirmDialog').dialog('open').dialog('option', 'href', this.href);
    }); 

    // unbind function if user clicks a link
    $('a').click(function(event) {
        $(window).unbind();
        //event.preventDefault();
        //$('#confirmDialog').dialog('option', 'href', this.href).dialog('open');
    });

    // unbind function if user submits a form
    $('form').submit(function() {
        $(window).unbind();
    });
});

CEVAP
19 Mayıs 2011, PERŞEMBE


beforeunload bir yöntem tarayıcıya yerleşik kullanır, bunun için bir dize döndürmesi gerekir, ve tarayıcı dize görüntülemek ve sayfa gitmek istediğiniz kullanıcı soracaktır.

Yapamazsınız (veya kalıcı diyaloglar jqueryuı) beforeunload geçersiz kılmak için kendi iletişim kutularını kullanın.

beforeunload başka bir sayfaya kullanıcı yönlendirme olamaz.

$(window).on('beforeunload', function(){
  return 'Are you sure you want to leave?';
});

Bu 'Are you sure you want to leave?' yazan uyarı kutusu açılır ve eğer istedikleri sayfayı terk ederseniz, kullanıcı sorar.

(GÜNCELLEME: Firefox özel mesaj, sadece kendi görüntüler.) görüntü yok

Eğer sayfa kaldırma gibi bir işlevi çalıştırmak istiyorsanız, boşaltma $(window).unload() sayfa durduramaz bunu sadece not veya kullanıcı yönlendirebilir. (GÜNCELLEME: Krom unload. Firefox blok uyarıları)

$(window).unload(function(){
  alert('Bye.');
});

Demo: http://jsfiddle.net/3kvAC/241/

GÜNCELLEME:

$(...).unload(...) jQuery v1 beri deprecated.8: yerine

$(window).on('unload', function(){
});

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • 8bitdigitaltv

    8bitdigitalt

    31 AĞUSTOS 2011
  • PaulGBelliveau

    PaulGBellive

    5 Mart 2009
  • TechnoBuffalo

    TechnoBuffal

    8 HAZİRAN 2007