0

我有一个页面显示来自数据库的一些数据。这些数据行中的每一个都有一个带有 ID 的链接。

<a href="javascript:void(0);" onClick="changeUrl(\'?side=annoncer&sletid='.$row['annonce_id'].'\');">

这是changeUrl功能:

function changeUrl(url) {
    window.history.replaceState(null, "Title", url);
}

链接指向同一页面,并&sletid添加。设置时&sletid,页面应该使用所选行的 ID 弹出窗口。

if (isset($_GET['sletid'])) {
    $sletid = $_GET['sletid'];
    echo "<script language='JavaScript'>alert ('ID:".$sletid."');</script>";
}

URL 发生了变化,并且弹出脚本代码被添加到源中,但是除非我再次手动更新页面,否则弹出窗口不会显示。为什么会有这种行为?

4

2 回答 2

1

replaceState实际上并没有加载页面,它只是在浏览器中编辑历史记录(和位置栏)。您需要使用 AJAX 自己加载页面。

于 2012-08-07T14:41:42.100 回答
0

您的 phpcode 不会被执行,因为历史状态的更改只会影响客户端。你需要在客户端监听历史的变化。

于 2012-08-07T14:40:59.717 回答