我希望在不重新加载的情况下删除一定数量的网页网址。
我已经查看了StackOverflow的答案,并且有一些很接近的答案,但不是我真正想要的答案。
我不想使用哈希函数,如果可能,请避免使用HTML5版本,因为HTML5尚未批准标准,对于将要使用的网站,我不会感到惊讶的是一些客户使用IE6。
我更愿意,如果它不是一个包含400行代码的极其复杂的解决方案(按照这个代价,我宁愿只是重新加载页面)。
我忘记提及这个问题的关键部分
The user is directed from a different page with this string via PHP. So for example:
user submits a form with errors. Let's say the form is on /myform.php
The user gets headed to /index.php?string
正常进行
我有什么:
这是我希望在不重新加载的情况下编辑的示例网址:
http://www.mywebsite.com/index.php?string
等待! ?字符串可用于/index.php
index.php将使用$ _GET ['string'];并向用户显示消息
我使用JQuery在4秒后删除了这条消息:
<div id="pagemsg"><?php echo $string; ?></div>
<script language="javascript">
setTimeout( "$('#pagemsg').fadeOut();", 4000);
</script>
这很好用,4秒后消息消失。但是我留下了这个网址:
http://www.mywebsite.com/index.php?string
我不再需要这个字符串,因为?string 已经完成了它的工作!
我想删除?string 而不重新加载while页面。
有什么解决方案可以帮助我吗?
此外,
我不介意我是否必须使用HTML5推送功能,但对于不支持HTML5的浏览器是否有后备解决方案?
为什么我在标题中添加了TWIST?好吧,我的要求与我到目前为止看到的问题有所不同。如果我错了,请纠正我,我会改变它。
提前感谢您的帮助!
答案 0 :(得分:1)
简单的答案是否定的。这就是他们添加pushState
的原因。
但是,您似乎正在尝试完成一个相当常见的场景,称为 Flash消息。这通常使用用户的会话来存储要在下一个请求上显示的消息(然后将其删除)。
示例:
function doImportStuff() {
// ...
$_SESSION['message'] = 'important stuff was done';
// ...
}
function showBoringPage() {
// ...
if (isset($_SESSION['message']) {
echo '<b>' . $_SESSION['message'] . '</b>';
unset($_SESSION['message']);
}
// ...
}
答案 1 :(得分:0)
我所知道的唯一方法是:
if (history && history.pushState){
history.pushState(null, null, '/new/url');
}
但这是HTML5,并且在你的情况下不会起作用。
对于旧浏览器 - 您:History.js