history.go(-1)在Internet Explorer中不起作用

时间:2012-12-13 12:53:17

标签: php javascript html

当我使用history.go(-1)命令时,它工作正常,但需要很长时间才能实现页面的显示。

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

但是当我尝试在我的PHP代码中使用它时,它只是给我一个错误“Internet Explorer无法显示网页”。这是我的代码

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

在ff和chrome中,这非常有效,它可以快速返回上一页,无需重新加载。在ie中不是这样。

2 个答案:

答案 0 :(得分:5)

回到上一页的常用方法不是将JavaScript传递到标题中,而是将用户引导到当前页面的引用者:

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

由于您说您使用的是IE9,因此您应该知道IE9 doesn't support the HTML5 History API。继续前进,您可以放心IE10 does support this,但对于IE9,如果不使用History.js之类的内容,您将无法使用这些方法。

如果您只是想异步加载页面,可以使用XHR object或jQuery之类的工具,这可以大大简化其他详细的代码。使用jQuery,您可以轻松加载页面:

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

哪会将#container的内容从targetPage.php加载到当前页面的#container元素中。

答案 1 :(得分:0)

试试这个:

history.back(1);