Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ajax 弹出窗口自动关闭功能;同时关闭网站_Ajax_Call_Back - Fatal编程技术网

Ajax 弹出窗口自动关闭功能;同时关闭网站

Ajax 弹出窗口自动关闭功能;同时关闭网站,ajax,call,back,Ajax,Call,Back,我有一个Ajax回调函数,调用PHP函数检查文件修改时间。 我使用定时器每50秒执行一次 <script type="text/javascript"> setInterval("_checkPopUpUpdate()", 50000); //50 seconds </script> function _checkPopUpUpdate() { var callback=new Object();

我有一个Ajax回调函数,调用PHP函数检查文件修改时间。 我使用定时器每50秒执行一次

    <script type="text/javascript">
    setInterval("_checkPopUpUpdate()", 50000); //50 seconds
    </script>

    function _checkPopUpUpdate()
    {
        var callback=new Object();
        callback.success=this.onExternalSuccess;
        callback.failure=this.onExternalFailure;
        YAHOO.util.Connect.asyncRequest('GET','/ci/ajaxCustom/ajaxCheckPopupUpdate',callback);
};
当文件修改时间发生变化时,它将返回ajax回调并获取web服务器中的HTML内容,以弹出一个注释弹出窗口

    function onExternalSuccess (o){
    if(o.responseText!==undefined)
    {
 var str=o.responseText;


     if(str !== 'no update') // Then pop up.
     {
  L=screen.width-200;
  T=screen.height;
  popup=window.open(str," ",'alwaysRaised=yes,status=no,toolbar=no,location=no,menubar=no,directories=no,resizable=no,scrollbars=no,height=150,width=364,left="+L+",top="+T');
  //popup=window.open(str,"",'alwaysRaised=yes,status=no,toolbar=no,location=no,menubar=no,directories=no,resizable=no,scrollbars=no,height=100,width=330');
  for (i=0;i<200;i++)
  {
      T=T-1;
      popup.moveTo(L,T);
  }
     }
    }
};
函数onExternalSuccess(o){
如果(o.responseText!==未定义)
{
var str=o.responseText;
如果(str!=“无更新”)//则弹出。
{
L=屏幕宽度-200;
T=屏幕高度;
弹出=窗口。打开(str,“,'alwaysRaised=yes,status=no,toolbar=no,location=no,menubar=no,directories=no,resizeable=no,scrollbars=no,height=150,width=364,left=“+L+”,top=“+T”);
//弹出=窗口。打开(str,“,'alwaysRaised=yes,status=no,toolbar=no,location=no,menubar=no,directories=no,resizeable=no,scrollbars=no,height=100,width=330');

对于(i=0;i对于运行弹出窗口阻止程序的人来说,打开弹出窗口发布这样的公告可能会有问题,弹出窗口阻止程序通常只允许弹出窗口出现,以响应用户发起的事件,如单击某物。更好的方法是使用内嵌弹出窗口,这也会让您有机会以模式显示弹出窗口(即用半透明div遮住页面的其余部分)如果您要求他们确认您的消息

self.close()的使用不应该关闭用户打开的原始窗口/选项卡,它应该只关闭“打开”的内容,因此我不确定那里发生了什么,我怀疑您没有告诉我们一切:)另一种方法可能是修改弹出函数以关闭窗口,而不是让窗口自行关闭

// open popup ... then set timeout to close it
var popupDelay = 50000;
setTimeout(function() {
  popup.close();
}, popupDelay);

这可能会更好一点,不确定。但从长远来看,我强烈建议不要使用弹出窗口,而是使用内联方式。

谢谢Paul,你有什么例子可以在YUI中使用内联弹出窗口。@QLiu-因为你已经在使用Yahoo库了),有@juskt,我不能使用简单的对话框。我们的供应商锁定了一些关于YUI的函数。T#T弹出窗口不是理想的解决方案从弹出窗口()中取出您的div并将其放置在主应用程序中。添加一些css来设置它的样式,例如#cs#u弹出窗口{显示:无;位置:绝对;左侧:50%;顶部:50%;左侧边距:-200px;顶部边距:-200px;宽度:400px;高度:400px;背景色:#fff;z-index:1}。在执行window.open的位置执行document.getElementById('cs#u popup').style.display='block';并在超时时将display属性设置为'none'。我确信有一些YUI方法可以通过id获取元素,并使用样式显示/隐藏它,但我不熟悉YUI。
<html>
    <head>
 <title>Internal alert</title>
 <link rel="stylesheet" type="text/css" href="/euf/assets/css/pop_up_ann.css" media="screen, projection" />
 <script type="text/javascript">
    var howLong = 50000; //5 minutes, 1 seconds = 1000 milliseconds.
    t = null;
    function closeMe(){
    t = setTimeout("self.close()",howLong);
    }
      </script>
    </head>
    <body onLoad="closeMe();self.focus();">
 <div id="cs_popup">
        <div class="popup_rounded-corner-top">
            <div id="popup_ann">
                <div id="popup_ann_title">IE7 pop-up EMEA test close </div>
                <div id="popup_ann_from"> PLC team - 05/01/2011 at 12:10</div>
            <div id="popup_ann_content">
            Something has changed in the<em>&quot;Alerts&quot;</em> section of S4S since your last visit.
            Make sure you go there as soon as you can to be informed about the current situation.
            </div>
            </div>
        </div>
        <div class="popup_rounded-corner-bottom"></div>
    </div>
    </body>
</html>
// open popup ... then set timeout to close it
var popupDelay = 50000;
setTimeout(function() {
  popup.close();
}, popupDelay);