2

アプリのデスクトップ バージョン用に既に作成した jQuery コードを使用して、モバイル サファリ/iPhone Web アプリを構築しようとしています。私が抱えている問題は、Web アプリが実行されている状態で携帯電話がスリープ状態になると、それを起動すると (スライドしてロックを解除すると)、JavaScript イベント ハンドラーが機能しなくなることです。この場合、onclick イベントを介して AJAX 更新を実行していたリンクをクリックすると、実際には新しい Safari ウィンドウでページを開いてリンクをたどり、ネイティブの iPhone アプリの外観が損なわれます。

動作を停止するコード:

$(function() {
var ajaxLoad;
var ajaxClick = function(e) {
    e.preventDefault();
    e.stopPropagation();
    $("body").load( $(this).attr("href"), ajaxLoad );
}
ajaxLoad = function() {
    $(this).find("a").click( ajaxClick );
}
$("a").bind( "click", ajaxClick );
});

コードが機能すると、リンクの結果が Web アプリ フレームで開きます。リンクが切れると、コードが新しいサファリ ウィンドウで開き、実際のアプリの外観が損なわれます。

4

1 に答える 1

0

テストされていませんが、リンクがアクティブにならないように ajaxClick 関数の最後に「return false」を追加すると役立ちます。

于 2011-03-19T23:57:31.837 に答える