1

次のようにhistory.go(-1)コマンドを使用すると、正常に機能しますが、ページの再読み込みに非常に時間がかかります。

<script type="text/javascript" language="javascript">
     javascript:history.go(-1);
</script>

しかし、PHPコードで使用しようとすると、「InternetExplorerはWebページを表示できません」というエラーが表示されます。これが私のコードです

<?php header(sprintf("Location: %s", "javascript:window.history.go(-1);")); ?>

ffとchromeでは、これは非常にうまく機能し、リロードせずにすぐに前のページに戻ります。つまり、そうではありません。

4

2 に答える 2

5

前のページに戻る一般的な方法は、JavaScriptをヘッダーに渡すのではなく、ユーザーを現在のページのリファラーに誘導することです。

header("Location: " . $_SERVER["HTTP_REFERER"]);

IE9を使用しているとおっしゃっていたので、IE9はHTML5HistoryAPIをサポートしていないことを知っておく必要があります。今後、 IE10はこれをサポートしているので安心できますが、IE9の場合、 History.jsなどを使用せずにこれらのメソッドを使用することはできません。

単にページを非同期でロードしたい場合は、XHRオブジェクト、またはjQueryのようなツールを使用して、冗長なコードを大幅に簡素化できます。jQueryを使用すると、次のように簡単にページを読み込むことができます。

$("#container").load("targetPage.php #container");

#containerこれにより、 fromのコンテンツが現在のページの要素に読み込まtargetPage.phpれます。#container

于 2012-12-13T13:02:08.173 に答える
0

これを試してください:

history.back(1);
于 2012-12-13T13:04:32.633 に答える