1

こんにちは、私はあるHTMLページから別のHTMLページに移動しています:

window.location = "test.html";  

test.html には、次のようなヘッダーがあります。

<script type="application/javascript">

            function redirect()
            {
                alert("inside redirect:");
                //window.location = url;
                //history.back();
                history.go(-1);
                return false;

            }

        </script>

        <div data-role="navbar">
            <ul>

                <li> <a href="#" data-theme="b" onclick="history.back(); return false;">Go Back</a></li>
                <li> <a onclick="redirect()" data-icon="back" data-iconpos="notext" data-direction="reverse" class="ui-btn-left jqm-home">Back1</a></li>

            </ul>
        </div>

しかし、ここでは両方の戻るボタン (Go Back と Back1) が機能していません。ページ間を移動するために使用$.mobile.changePage('test.html')すると、両方の [戻る] ボタンが機能します。なぜwindows.locationにないのですか?

ajaxをサポートしていないB級ブラウザ向けにこのアプリケーションを開発したいと考えています。したがって、私は使用できません$.mobile.changePage('test.html')

どんな助けでも大歓迎です。ありがとう。

4

4 に答える 4

1

このBlackberry OS 5ブラウザには多くの問題があります。当初、私もあなたが今していることをやろうとしました。しかし、後で、より良い他のアプローチを考える必要があると思います。これが私がそれを解決した方法です

このようにjquery-mobileスクリプトをロードする前に、まずこれらの行を追加してください

<script type="text/javascript">
    $(document).bind("mobileinit", function() {
        $.support.cors = true;
        $.mobile.allowCrossDomainPages = true;
    });
</script>

次に、Single Html conceptを使用しました。この概念では、スクリプトを一度だけロードする必要があり、jquery-mobile を利用できchangePageました。多くの html ページがある場合、スクリプトのロードとアンロードが行われるため、数秒待つ必要があります。それを避けてください、それは不必要です。

このようにすべてのページを同じ Html に含める

<div data-role="page" id="page1">
<div data-role="page" id="page2">
.
.
.

その後、changePageこのようなことを簡単に行うことができます

$.mobile.changePage("#page1", {
    transition : "slide"
});

あなたが正しいアプローチをとることを願っています。

于 2012-07-26T09:08:50.363 に答える
0

jQuery mobileでは、いくつかの開始変数を設定することでajaxを無効にすることができます。jQuery mobileをロードする前に、このスクリプトをロードする必要があります

$(document).bind("mobileinit", function(){
  //apply overrides here
  $.mobile.ajaxEnabled = false;
});

ajaxをオフにしても、$。mobile.changePage()を引き続き使用できます。

ここで、戻るボタンを作成するには、リンクにdata-rel="back"の属性を指定するだけです。

<li><a href="#" data-theme="b" data-rel="back">Go Back</a></li>
于 2012-07-26T06:45:32.220 に答える
0

使用しない理由window.location.replace("test.html");

于 2012-07-26T06:03:58.887 に答える
0

試す:

window.location.href = "test.html"; 

また:

window.location.assign("test.html");

リファレンスを見る

于 2012-07-26T06:03:28.810 に答える