2013-07-17 9 views
5

jquery-mobileでWebアプリケーションを開発しているときに、私は奇妙なバグに直面しています。 アラートを出すと、ページの入力に触れると、iOS Safari & Chromeが完全にフリーズし、タスクマネージャーで閉じることができます。jascery-free iOSブラウザ

リンゴの不具合かそれが私のものなら、私は非常に混乱しています。

コードのいくつかの作品:これは、イベントのdiv要素

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

です:

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

が、これは入力の一つである:

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

警告された後私が入力の一部に集中したい場合、ブラウザはフリーズします。私は近くのSafariを強制する場合 、これは、コンソールがくれたメッセージです。

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

任意のヘルプ? ありがとうございます

答えて

9

iOSブラウザに大きなバグがあるようです。選択時にonChangeイベントの後に警告を使用すると、警告が[OK]ボタンでポップアップ表示されます。 [OK]ボタンをクリックしても何も実行されません。顔では、全ブラウザがロックアップします。唯一の解決策は、家庭や電源ボタンを押してブラウザアプリケーションを強制終了することです。

2013年12月13日現在、この問題は修正されていません。私はAppleに提出しました。他にもあります。彼らがなぜこの大問題を解決するのが遅いのか分かりません。

+0

それ原因どのような状況の任意のアイデアを?任意の回避策または何か? – Erhannis

3

問題に投稿されたコードを使用して問題を再現できませんでした。しかし、これまでにも同様の問題があり、解決策を見出しました。

ネイティブiOSアプリのウェブビュー内でモバイルSafariを使用すると、同様の問題が発生しました。 setTimoutにアラートメッセージをラップすると、デッドロックの問題が解決されました。そこは、このトピックに尋ねた質問だった、それはここで答えた:Calling [JSValue callWithArguments:] locks UI when alert() is called

は、このソリューションを使用して、コードのあなたの部分は次のようになります。

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

2016年8月現在も問題が残っているようです。この解決策を使用して 'confirm'プロンプトで修正できました。ありがとう! –

関連する問題