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

  • Apple

    Apple

    22 HAZİRAN 2005
  • Epic Tutorials for iPhone, iPad and iOS

    Epic Tutoria

    18 EYLÜL 2011
  • thelonelyisland

    thelonelyisl

    23 Aralık 2005