2013-07-17 29 views
5

jquery-mobile bir webapp geliştirirken bazı garip bir hata ile karşı karşıya. Bir uyarı sorduğumda, sayfanın bazı girişlerine dokunursam iOS Safari & Chrome tamamen donuyor ve bunları yalnızca Görev Yöneticisi ile kapatabilirim.javascript alert dondurucu IOS Tarayıcılar

Elma hatası mı yoksa benimki ise çok kafam karıştı.

kod Bazı parça: Bu olayın div

$('.checkout-comprar-button').click(function(){     
    alert("hola!!!"); 
}); 

geçerli:

<div class="grp-bottombar-button checkout-comprar-button" style="width: 50% !important; float: right !important; display: block !important; padding-top: 12px;"> 
     <span class="green-desplegable grp-bottombar-button-text"> 
      <? echo _("checkoutcreditcard.seguircompra"); ?> 
     </span> 
</div> 

Ve bu girdilerin biri:

<div class="checkout-datos-numero checkout-first-form checkout-form-field-container"> 
    <div class="checkout-field"> 
     <input type="tel" placeholder="<? echo _('creditcard.numero'); ?>" name="" id="checkout-num-tarjeta" maxlength="30" /> 
    </div> 
</div> 

uyarı sonra Eğer bazı girişlere odaklanmak istersem, tarayıcı donar.

<Warning>: MobileSafari[2985] has active assertions beyond permitted time: 
    {(
     <BKProcessAssertion: 0x1e857480> identifier: Suspending process: MobileSafari[2985] permittedBackgroundDuration: 10.000000 reason: suspend owner pid:26 preventSuspend preventThrottleDownCPU preventThrottleDownUI 
    )} 
<Warning>: Forcing crash report of MobileSafari[2985]... 

Herhangi yardım: Ben yakın Safari zorlamak zaman , bu konsol verdi bana mesajdır? Teşekkür ederim

cevap

9

iOS tarayıcısında bir MAJOR hatası var gibi görünüyor. Bir uyarıdaki onChange olayından sonra uyarıyı kullandığımda, bir uyarı düğmesi ile uyarı açılır. Tamam düğmesine tıklamak başka bir şey yapmaz. Yüzünde, ENTIRE tarayıcısı kilitlenir. Tek çözüm, ev veya güç düğmesine basmak ve tarayıcı uygulamasını öldürmektir.

13 Aralık 2013 itibariyle, bu sorun düzeltilmedi. Apple’a gönderdim. Diğerleri de var. Bu MAJOR meselesini düzeltmek için neden bu kadar yavaş olduklarını anlayamıyorum.

+0

bunun nedeni hangi koşullarda fikrin var mı? Herhangi bir geçici çözüm veya herhangi bir şey? – Erhannis

3

Sorunda yayınlanan kodu kullandım ve sorunu kopyalayamadı; Ancak daha önce benzer problemlerim vardı ve bir çözüm buldum.

Yerel bir iOS uygulamasında bir web görünümünde Mobil Safari kullanırken benzer bir soruna rastladım. Uyarı mesajını setTimout'ta sarmalamak benim için kilitlenme sorununu çözdü. Orada bu konu hakkında sorulan bir soru ve bu sorunun cevabı burada edildi: Calling [JSValue callWithArguments:] locks UI when alert() is called

bu çözümü kullanarak, kod sizin parçası şu şekilde görünecektir:

$('.checkout-comprar-button').click(function(){     
    window.setTimeout(function() {alert("hola!!!");},0); 
}); 
+0

Sorun hala Ağustos 2016 itibariyle var gibi görünüyor - Ben bu çözümü kullanarak bir 'teyit 'istemi için düzeltmek başardı. Teşekkürler! –

İlgili konular