12

PhoneGap アプリケーションにログアウトボタンを実装します。これにより、ユーザーは認証ページ (フィールドがクリアされた状態) に戻ります。onclick イベントでアンカーを使用しているボタンの場合:

<script type="text/javascript">
function doLogout() {
    var backlen = history.length;
    history.go(-backlen);
    window.location.replace("index.html");
}
</script>

<a data-role="none" href="#" onclick="doLogout"></a>

つまり、すでに入力されたフィールドを含む認証ページに戻るだけで、一歩後退したように見えます。history.clear()についてはよくわかりません。グーグルで検索しても何も得られなかったからです。

<a data-role="none" href="index.html" onclick="javascript:history.clear();"></a>

誰が私の問題がどこにあるのか教えてもらえますか? PhoneGap でログアウト イベントを処理する別の解決策があれば、それに従います。ありがとう

4

4 に答える 4

17

への呼び出しhistory.goは無視されます。これは、履歴にあるアイテムよりも 1 つ多く前に戻るためです。プロパティには、現在のアイテムを含むアイテムのlength数があるため、たとえば履歴に 4 つのアイテムがある場合、3 ステップしか戻ることができません。

最初のステップに戻るには、長さから 1 を引きます。

history.go(-(history.length - 1));

ただし、そのページ専用の新しいウィンドウを開いた場合にのみ、スタート ページに戻ることができます。そうしないと、ユーザーはそのウィンドウを使用して最初にアクセスしたページに戻ります。


オブジェクトのclearメソッドはありません。history

参照: https://developer.mozilla.org/en-US/docs/DOM/window.history

ブラウザの履歴はユーザーのものであり、削除することはできません。

于 2013-02-17T12:18:49.050 に答える
7

私は PhoneGap を開発したことはありませんが、Web アプリケーションでは以下のコードを使用できます。

試すwindow.location.replace(url);

リダイレクト後、前のページに移動できません。

于 2014-03-04T10:54:55.700 に答える
1

属性を使用する場合onclick、引用符で囲まれるのは、関数の名前だけでなく、実際のステートメントです。そう:

<a data-role="none" href="#" onclick="doLogout();"></a>
<!-- Note the (); ----------------------------^^^   -->

また、リンクをたどるというデフォルトのアクションを防ぐために何もしていないため、ブラウザーは現在のページの先頭に移動するhrefをたどります。#を追加することで(必要に応じて)それを防ぐことができますreturn false;

<a data-role="none" href="#" onclick="doLogout(); return false;"></a>

私はあなたの質問の2番目の部分をたどることができませんでしたが、2番目の例javascript:ではonclick属性を必要としない、または必要としないことに注意してください。URI が予期される場所 (たとえば、hrefアンカーの ) でのみ、その疑似プロトコルを使用します。属性の内容onXYZは常にコードであり、URI ではありません。

最後に: スタイリングで何かをしていない限り、これらのリンクは両方ともクリックするのが非常に難しくなります。:-)

于 2013-02-17T12:00:59.280 に答える