我有一个显示数据库中某些数据的页面。 每个数据行都有一个带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更改,弹出脚本代码添加到源,但弹出窗口不会显示,除非我再次手动更新页面。为什么会出现这种情况?
答案 0 :(得分:1)
replaceState
实际上并未加载页面,它只是编辑浏览器中的历史记录(和位置栏)。您需要使用AJAX自己加载页面。
答案 1 :(得分:0)
您的PHP代码无法执行,因为历史记录状态的更改只会影响客户端。 您需要在客户端收听历史记录的更改。