SORU
9 Kasım 2008, Pazar


Nasıl OnBeforeUnload iletişim geçersiz kılmak ve kendi ile değiştirebilir miyim?

Sayfa (Çok sık rastlanan bir sorun) ayrılmadan önce kaydedilmemiş değişiklikler hakkında kullanıcıları uyarmak istiyorum.

window.onbeforeunload=handler

Bu benim kendi metin saran rahatsız edici standart bir mesaj ile varsayılan bir iletişim yükseltir ama çalışıyor. Ya benim metin açıktır, bu yüzden tamamen standart mesajı değiştirin, ya da (daha iyi) kalıcı bir iletişim jQuery kullanarak tüm iletişim değiştirmem gerekiyor.

Şimdiye kadar başarısız oldum ve bir cevabı var gibi görünüyor eden kimseyi bulamadım. Hatta mümkün mü?

Sayfamda Javascript:

<script type="text/javascript">   
   window.onbeforeunload=closeIt;
</script>

Bu closeİt() fonksiyonu:

function closeIt()
{
  if (changes == "true" || files == "true")
  {
      return "Here you can append a custom message to the default dialog.";
  }
}

JQuery ve jqModal böyle bir şey (özel bir kullanarak iletişim onaylayın) denedim kullanarak:

$(window).beforeunload(function() {
        confirm('new message: '   this.href   ' !', this.href);
        return false;
    });

ayrıca çalışmıyor yapamam beforeunload olayı bağlamak gibi görünüyor.

CEVAP
10 Kasım 2008, PAZARTESİ


Yapabileceğiniz en iyi iş olabilir onbeforeunload, varsayılan diyalog değiştiremezsiniz.

window.onbeforeunload = function() {
    return 'You have unsaved changes!';
}

Microsoft'un bu Here's a reference:

Bir dize pencere returnValue özelliğine atanır.olay, bir iletişim kutusu kullanıcı mevcut sayfada kalmak için bu seçeneği verir ve kendisine atanan dize korumak görünür. İletişim kutusunda görünen varsayılan deyimi, Bu sayfanın dışında gerçekten gezinmek için istediğinizden emin misiniz"? ... TAMAM devam edin, geçerli sayfada kalmak için İptal düğmesine basın.", kaldırılamaz veya değiştirilemez.

Sorun:

  1. onbeforeunload denir, window.event.returnValue gibi işleyicisi dönüş değeri alacaktır.
  2. Sonra bir dize boş değilse) olarak dönüş değeri ayrıştıracak.
  3. false bir dize olarak ayrıştırılır beri, diyalog kutusutrue/falseuygun bir geçecek olan ateş edecek.

Sonuç, onbeforeunload 17 *varsayılan diyalog engellemek için atama bir yolu yok.

JQuery hakkında daha fazla bilgi için:

  • JQuery olay ayarlamaolabilironbeforeunload diğer olaylar da meydana sağlar olarak sorunlu olması. Senin düz ol kullanmaya devam ederdim meydana kaldırma olayı sadece dilediğine' bunun için JavaScript.
  • bir WordPress kullanmak bind genel sözdizimi kullanmak zorunda kalırdık onbeforeunload için bir kısayol yok.

    $(window).bind('beforeunload', function() {} );
    

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • isupportthegosselins

    isupporttheg

    6 Aralık 2009
  • Neil Cicierega

    Neil Ciciere

    22 Mart 2006
  • TastyTuts | Creative video tutorials by Gareth David

    TastyTuts |

    6 Temmuz 2011