我使用jquery.load将一个div加载回同一页面,然后刷新该div以反映任何更改。这很好用,直到我需要我加载的页面中的一个变量在javascript中使用。例如,如果localStorage.username2发生变化,浏览器应该重新加载。但事实并非如此。
<script type="text/javascript">
var partyid = '<?php echo $_GET["Party_ID"]; ?>';
jQuery(document).ready( function($){
if (localStorage.user2==localStorage.username2){
$('#Submission-2').load('http://example.com/?Party_ID=' + partyid + ' #Submission');
refresh();
}
});
</script>
<script type="text/javascript">
function refresh()
{
setTimeout( function() {
if (localStorage.user2==localStorage.username2)
{
$('#Submission-2').fadeOut('slow').load('http://example.com/?Party_ID=' + partyid + ' #Submission').fadeIn('slow');
document.getElementById("Submit-answer").innerHTML = localStorage.username2;
refresh();
}
else{
window.location.reload();
}
document.getElementById("Submit-answer").innerHTML = localStorage.username2;
}, 5000);
}
</script>此代码一直有效,直到用户名发生更改且代码未检测到为止。因此,永远不会执行window.location.reload();函数。
我在提交的div中也有这段代码。
<div id="submission">localStorage.setItem("user2", "<?php echo $user; ?>");
localStorage.setItem("username2", "<?php echo $party_information[0]->Username; ?>");
</script>
</div>因此,我的问题是如何从使用.load加载的页面中获取变量?我是个新手,几天前才开始这么做。提前谢谢。
发布于 2016-08-19 07:00:09
当本地存储发生变化时,应该会触发$(‘#提交-2)刷新(...);.load();函数,如下所示。
$(window).bind('storage', function (e) {
$('#Submission-2').load('http://example.com/?Party_ID=' + partyid + ' #Submission');
refresh();
});发布于 2016-08-19 07:05:57
您可以设置一个定期触发的间隔,以检查变量是否已更改
window.setInterval(function(){
if (localStorage.user2 != localStorage.username2){
window.location.reload();
}
}, 5000);它每隔5秒运行一次,以检查变量是否已更改。请注意,这可能非常繁重。
发布于 2016-08-23 16:15:51
这就是我最终为js所做的事情。成功了!
<script type="text/javascript">
function refresh()
{
var quitfunction = 0;
setTimeout( function() {
$('#Submission-2').fadeOut('slow').load('http://example.com/play-with-friends/?Party_ID=' + partyid + ' #Submission' , function() {
var username = '<?php echo $party_information[0]->Username; ?>';
if (document.getElementById('total').value!=username)
{
window.location.reload();
}
});
$('#Submission-2').fadeIn('slow').load('http://example.com/play-with-friends/?Party_ID=' + partyid + ' #Submission' );
{
refresh();
}
}, 5000);
}
</script>https://stackoverflow.com/questions/39028667
复制相似问题