javascript
  • jquery
  • html
  • 2016-08-18 12 views 0 likes 
    0

    我正在使用jquery.load将div加载回同一页面,然后刷新div以反映任何更改。这工作正常,直到我需要一个变量从我加载在JavaScript中使用的页面。例如,如果localStorage.username2更改浏览器应重新加载。但事实并非如此。从Jquery加载的网页获取变量

    <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加载的页面获取变量? 我对这只是几天前才刚刚开始。提前致谢。

    +0

    使用$ _GET [“Party_ID”]直接在网页上,转义,你很容易受到跨站点脚本。请逃避用户输入。 – jedifans

    +0

    现在看着。我正在接近开发中的漏洞测试阶段。顺便说一句,我使用的WordPress是否会让它更难或更容易? – Dario

    回答

    0

    像下面这样的东西应该激发你的$('#Submission-2).load(...);刷新();当本地存储更改时可用。

    $(window).bind('storage', function (e) { 
        $('#Submission-2').load('http://example.com/?Party_ID=' + partyid + ' #Submission'); 
        refresh(); 
    }); 
    
    +0

    对不起,我仍在试图弄清楚语言。这将涉及哪个脚本文件? – Dario

    +0

    这会进入你的jQuery(document).ready(function($){right here!})函数。 – Pat

    +0

    所以我会有一个功能 – Dario

    0

    可以设置周期性触发以检查变量已经改变的间隔或不

    window.setInterval(function(){ 
        if (localStorage.user2 != localStorage.username2){ 
         window.location.reload(); 
        } 
    }, 5000); 
    

    这将运行每隔5秒至检查变量已经改变。请注意,这可能是相当困难

    0

    这就是我最终为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> 
    
    +0

    我有一个问题,虽然加载的页面不执行div中的JQuery – Dario

    相关问题