Javascript 为什么JS在除IE之外的所有浏览器中都能正常刷新?

Javascript 为什么JS在除IE之外的所有浏览器中都能正常刷新?,javascript,internet-explorer,refresh,Javascript,Internet Explorer,Refresh,我需要每8秒重新加载一次页面。它在Chrome、Firefox和Safari中运行良好,但在IE中,它在刷新1到12次后就会停止刷新。这是有问题的 以下部分包含在文件的标题中。getScrollXY获取页面坐标,以便可以在某个位置重新加载iframe。三个d变量是X值、Y值和形式。这里的PHP变量是页面的URL,显然,可以根据需要进行修改 function unloadP(dung,dong,dang) { s=getScrollXY(); document.getElement

我需要每8秒重新加载一次页面。它在Chrome、Firefox和Safari中运行良好,但在IE中,它在刷新1到12次后就会停止刷新。这是有问题的

以下部分包含在文件的标题中。getScrollXY获取页面坐标,以便可以在某个位置重新加载iframe。三个d变量是X值、Y值和形式。这里的PHP变量是页面的URL,显然,可以根据需要进行修改

function unloadP(dung,dong,dang)
{
    s=getScrollXY();
    document.getElementById(dong).value = s[0];
    document.getElementById(dang).value = s[1];
    document.getElementById(dung).submit(); 
    return false;
    window.location = \"$here\";
    window.location.reload(true);
}

function unloadPnow(dug,dog,dag,deg)
{
    s=getScrollXY();
    document.getElementById(dog).value = s[0];
    document.getElementById(dag).value = s[1];
    document.getElementById(dug).submit(); 
    return false;
    window.location = deg;
    window.location.reload(true);
}
这就是实际行动发生的地方

if(isset($newscroll))
{
    if(count($printlast)!=0)    $_SESSION['printlast']=$printlast;
    $_SESSION['newscroll']="isset";
    if($newscroll!="set")   $here='http://127.0.0.1/dummyname.php?ord=1&mode='.$newscroll;//#duh';
    if(strpos($_SERVER['HTTP_USER_AGENT'],"Safari")!==FALSE)
        {
            print("<body onLoad=\"setTimeout('unloadP(\'thisf\',\'scrollx\',\'scrolly\')', 100);\">
                <form id=\"thisf\" method=\"post\" action=\"$here\">
                <input type=\"hidden\" name=\"scrollx\" id=\"scrollx\" value=\"3\">
                <input type=\"hidden\" id=\"scrolly\" name=\"scrolly\" value=\"4\"></form>");
        }
    else
        {
            print("<body onLoad=\"setTimeout('unloadP(\'thisf\',\'scrollx\',\'scrolly\')', 0);\">
                <form id=\"thisf\" method=\"post\" action=\"$here\">
                <input type=\"hidden\" name=\"scrollx\" id=\"scrollx\" value=\"3\">
                <input type=\"hidden\" id=\"scrolly\" name=\"scrolly\" value=\"4\"></form>");
        }
}
else
{
    if(isset($_SESSION['printlast']))   unset($_SESSION['printlast']);
    if(!isset($dontload))
        {
            if(isset($_POST['scrollx']))
                {
                    print("<body onLoad=\"loadP(); setTimeout('unloadP(\'thisf\',\'scrollx\',\'scrolly\')', 8000);\">
                        <form id=\"thisf\" method=\"post\" action=\"$here\">
                        <input type=\"hidden\" name=\"scrollx\" id=\"scrollx\" value=\"3\">
                        <input type=\"hidden\" id=\"scrolly\" name=\"scrolly\" value=\"4\"></form>");
                }
            else
                {
                    print("<body onLoad=\"window.scrollTo(0, document.body.scrollHeight); window.top.scrollTo(0,0); setTimeout('unloadP(\'thisf\',\'scrollx\',\'scrolly\')', 8000);\">
                    <form id=\"thisf\" method=\"post\" action=\"$here\">
                    <input type=\"hidden\" name=\"scrollx\" id=\"scrollx\" value=\"3\">
                    <input type=\"hidden\" id=\"scrolly\" name=\"scrolly\" value=\"4\"></form>");
                }
        }
    else
        {
            print("<body onLoad=\"window.scrollTo(0, document.body.scrollHeight); window.top.scrollTo(0,0); setTimeout('unloadP(\'thisf\',\'scrollx\',\'scrolly\')', 8000);\">
                    <form id=\"thisf\" method=\"post\" action=\"$here\">
                    <input type=\"hidden\" name=\"scrollx\" id=\"scrollx\" value=\"3\">
                    <input type=\"hidden\" id=\"scrolly\" name=\"scrolly\" value=\"4\"></form>");
        }
}

另外,为了记录在案,我尝试在每次刷新时更改GET变量的值,以诱使IE认为这是另一个页面,但没有效果。我甚至复制了代码并将其放在另一个页面中,每次刷新时从一个页面切换到另一个页面,但这也不能保持IE的刷新。我的猜测可能是其他浏览器所能容忍的语法中的一个小错误,或者IE正在积极阻止刷新。

除了已经建议的之外,另一个选项是在url中添加一个随机变量属性,以便将链接与IE浏览器可能缓存的任何值区分开来

您是否设置了正确的缓存头?我只设置了以下头,没有用。标头('Cache-Control:no-Cache,no-store,max-age=0,必须重新验证');页眉(‘到期日期:1997年7月26日星期一05:00:00 GMT’);标题('Pragma:no cache');过期日期不一定要在将来吗?我已经用$\u GET变量这样做了。每次加载时,它都会从0切换到1或从1切换到0。事实上,在某一点上,我甚至复制了该页面并给它起了另一个名称,并在每次刷新时在两个页面之间切换。不管怎样,我还是随机停止了刷新。
header('Cache-Control: no-cache, no-store, max-age=0, must-revalidate');
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Pragma: no-cache');