【发布时间】:2018-07-21 09:53:54
【问题描述】:
我是一个长期自学成才的用户,只是从来没有遇到过没有以某种形式得到解答的问题。很棒的社区谢谢大家!
所以我很困惑为什么javascript 不能正确刷新我的页面。
我有一个非常大的页面,我使用jquery 和带有 url 哈希标记的垂直选项卡。这是我更新到最新版本后最近添加的一个新功能。
点击提交后,表单会刷新,如果设置了 $_POST[update],它将运行一组查询。然后我有一个 javascript 超时刷新页面(理想情况下到正确的选项卡前:home/database.php?file=101#tab3)
摘录我的杂乱代码:
if(isset($_POST['update']))
{ do a bunch of sql stuff
....
<pre>
<?PHP
//unset update variable
$_POST = array();
//print_r(get_defined_vars());
?>
</pre>
</br>
<script type="text/javascript">
function Redirect() {
$('#redirect').trigger('click');
}
var currenturl = window.location.href;
document.write("<form action=" + currenturl +"><input type=submit name=redirect value=Redirect></form>");
document.write("</br>You will be redirected back to the file in 2 seconds.");
setTimeout('Redirect()', 2000);
</script>
<?php
mysql_close($conn);
}
else
{ display usual data....check boxes etc
现在我尝试了各种可能的方式来提神。我清除了 $_POST 数组,因此页面应该重新加载显示信息,但事实并非如此。但是,我对正在运行的查询的确认显示更新了 0 行,因此它没有触发 sql,但也没有正确刷新。
我发现了一个功能,可以在浏览器会话中存储上次单击的选项卡,但是当您切换文件时,它会跳到该选项卡。相反,我想显示默认选项卡。
我什至尝试制作一个按钮,点击它会转到上面显示的正确网址。当我手动单击它时它可以工作,但当我通过javascript 触发它时它不起作用。甚至转到相应的选项卡。
我正在使用以下函数更新地址栏中的 url。还使用最新版本的 chrome。
<script>
$( "#tabs" ).tabs({
activate: function(event, ui) {
window.location.replace('#' + $(ui.newPanel).attr('id'));
var curTab = $(ui.newPanel).attr('id');
console.log(curTab);
}
});
</script>
【问题讨论】:
标签: javascript jquery html url hash