1

当我按如下方式使用 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 中这非常有效,它可以快速返回到上一页,无需重新加载。不是这样。

4

2 回答 2

5

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

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

既然您说您使用的是 IE9,那么您应该知道IE9 不支持 HTML5 History API。展望未来,您可以放心IE10 确实支持这一点,但对于 IE9,如果不使用History.js之类的东西,您将无法使用这些方法。

如果你只是想异步加载页面,你可以使用XHR 对象,或者像 jQuery 这样的工具,它可以极大地简化冗长的代码。使用jQuery,您可以像这样简单地加载页面:

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

这会将#containerfrom的内容加载targetPage.php#container当前页面上的元素中。

于 2012-12-13T13:02:08.173 回答
0

试试这个:

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