2

クリックすると特定の履歴に移動する場合にボタンを持つ Web アプリケーションがあります。history.go(url) をサポートしているのは IE だけで、他のブラウザは数値のみを受け入れると聞きました。私の場合、 history.go() は特定のページにのみ移動しますhttp://localhost:54187/Products/Create。ボタンをクリックすると、ユーザーが別のページに移動した場合でも、履歴の「作成」ページに移動します。history.go が必要なのは、ブラウザの前後に相当するからです。window.location や location.href を使用することはできません。私のアプリケーションでは、入力されたデータが history.go とまったく同じように残っている必要があるためです。ユーザーが合計 26 ページをロードした場合、history.go(createIndex) ができるように、これらの 26 ページのどれが作成ページであるかをどのように知ることができますか? window.history.length は 26 になりますが、URL は公開されません。

どうすれば問題を解決できるか教えてください。

JavaScript と HTML

<script type="text/javascript">
    $(document).ready(function () {
    $('#btnGoToCreate').click(function () {
        var createIndex = //how to know what's the index of 
        //http://localhost:54187/Products/Create from window.history?
        history.go(createIndex);
        });
    });
   </script>

<input type="button" value="Go to Last Entry" id="btnGoToCreate" />
4

2 に答える 2

0

セキュリティ/プライバシー上の理由により、履歴アイテムを読み取ることはできません。以下を使用して読み取ることができる以前の URL にのみアクセスできます。

document.referrer

ただし、ブラウザの履歴を操作することはできますが、ユーザーの履歴の特定のページに移動することもできません。

于 2013-03-26T08:24:08.523 に答える
0

カウンター変数を追加して、インデックスを保存します。このカウンターは に格納できます cookie/sessionStorage/localStorage
ユーザーが別のページに移動すると、counter self に 1 を加えて、ユーザーがボタンをクリックしたときに window.history.go(counter) を使用できます。

ところで、ユーザーがページを更新すると、カウンターが自己プラス 1 になる可能性があります。この問題が発生しないようにするには、タイムスタンプを次のページに渡し、 を使用し、URL のタイムスタンプが保存されたものと異なる場合は、?timestamp=1231232123に保存する必要があります。の場合、カウンターはプラス 1 になる可能性があります。cookie/sessionStorage/localStoragecookie/sessionStorage/localStorage

これは私のプロジェクトでの私の解決策です。

于 2015-03-26T09:03:38.990 に答える