16

ローカルファイルシステムとブラウザの使用に制限されている環境でアプリケーションを構築しています(つまり、サーバーを実行することはできません)。主にを呼び出すだけの一般的な「戻る」リンクが多数のページにありますhistory.back()。次のようになります。

function goBack(evt) {
    // Check to see if override is needed here

    // If no override needed, call history.back()
    history.back();
}

$('#my-back-button').click(goBack);

このコードはFirefoxとIE6では正常に機能しますが(質問しないでください)、Chromeでは失敗します。理由および/または考えられる回避策に関する提案はありますか?

私も試しましhistory.go(-1);たが、どちらも機能しません。

4

5 に答える 5

25

Chromeで何らかの理由で、history.go(-1)を呼び出した後にreturnfalseを追加する必要があります

関数を次のように変更します。

function goBack(evt) {
// Check to see if override is needed here

// If no override needed, call history.back()
history.go(-1);
return false;
}
于 2012-03-03T19:51:38.870 に答える
3
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Untitled Document</title>
</head>
<body>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script>
$(document).ready(function () {
    function goBack(evt) {
    // Check to see if override is needed here

    // If no override needed, call history.back()
    history.back();
    $('#my-back-button').forwardEvent('click');
}

$('#my-back-button').click(goBack);

/**
* chrome workaround for triggering click events
* @param {event} event  event
* @return {undefined}   Returns undefined
*/
    $.fn.forwardEvent = function(event) {
        this.each(function() {
            if (this.dispatchEvent) {
                if (event.originalEvent) {
                    event = event.originalEvent
                }
                try {
                    this.dispatchEvent(event);
                } catch(error) {
                    $(this).trigger(event);
                }
            }
            else {
                $(this).trigger(event);
            }
        });
        return this;
    };
});
</script>
<input type="button" value="<<<<" id="my-back-button">
</body>
</html>
于 2012-02-29T21:21:18.123 に答える
1

var referrer = document.referrer; window.location.replace(referrer);

これを使用して動作します

于 2016-08-10T23:47:56.383 に答える
0

Chromeの場合、以下のコードを使用します。

<a href="#" onclick="javascript:history.go(-1);return false;" style="text-decoration:underline;">Back</a>

このコードのみが機能します。

私はそれが役立つことを願っています...ハッピーコーディング..:)

于 2013-10-04T05:24:23.487 に答える
-1

パーティーに遅れて...ここに別の解決策があります:window.history.go(-1)に従ってウィンドウを閉じることができます。chromeはウィンドウを開いたままにして、次の行を読み取るため、これは機能します。他のブラウザは単に戻ります。

<script>
alert("Success!");
window.history.go(-1);
window.close();
</script>
于 2019-02-12T14:58:59.287 に答える