2013-07-17 6 views
5

Mam do czynienia z dziwnym błędem podczas tworzenia aplikacji webowej w jquery-mobile. Po wyświetleniu monitu o alert, jeśli dotknę jakiegoś wejścia strony, przeglądarka iOS Safari & Chrome zostanie całkowicie zamrożony i mogę je zamknąć tylko za pomocą Menedżera zadań.Alert javascript zamrożenie iOS Browsers

Jestem bardzo zdezorientowany, jeśli to wina jabłkowa lub moja.

Niektóre kawałek kodu:

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

To div imprezy:

<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> 

I to jest jedno z wejść:

<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> 

Po wpisowi pokazano, jeśli chcę skupić niektóre z wejść, przeglądarka zawiesza się. Kiedy zmusić bliską Safari, jest to wiadomość, że konsola dał mi:

<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]... 

pomocy? Dziękujemy

Odpowiedz

9

Wygląda na to, że w przeglądarce systemu iOS wystąpił błąd MAJOR. Kiedy korzystam z alertu po zdarzeniu onChange w oknie wyboru, pojawia się komunikat z przyciskiem OK. Kliknięcie przycisku OK nie robi nic innego. W twarz, CAŁA przeglądarka blokuje. Jedynym rozwiązaniem jest naciśnięcie przycisku home lub power i zabicie aplikacji przeglądarki.

Stan na dzień 13 grudnia 2013 r. Nie został rozwiązany. Przesłałem do Apple. Inni również. Nie wiem, dlaczego tak wolno rozwiązać ten poważny problem.

+0

Każdy pomysł jakich okolicznościach przyczyną tego? Jakiekolwiek obejścia lub cokolwiek? – Erhannis

3

Użyłem kodu opublikowanego w pytaniu i nie mogłem odtworzyć problemu; Jednak miałem podobne problemy wcześniej i znalazłem rozwiązanie.

Wystąpił podobny problem podczas korzystania z Mobile Safari w widoku sieciowym w natywnej aplikacji na iOS. Zawinięcie komunikatu alertu w setTimout rozwiązało dla mnie problem zakleszczenia. Było pytanie zadawane na ten temat i było tu odpowiedzi: Calling [JSValue callWithArguments:] locks UI when alert() is called

korzystania z tego rozwiązania, twój kawałek kodu wyglądałby następująco:

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

Problem nadal wydaje się istnieć od sierpnia 2016 r. - udało mi się go naprawić za pomocą monitu 'confirm' za pomocą tego rozwiązania. Dzięki! –