断狱丹阳 2015-08-08 08:00 采纳率: 0%
浏览 1899

小白很是迷惑,求大神解救(关于setTimeout()和open())

<!--------------------------html代码-------------------------->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
      <title>windowOpen</title>
      <script type="text/javascript" src="case.js"></script>
    </head>
    <body>
     <a href="javascript:void(null)" onclick="openWin()">点击弹出新窗口</a>
    </body>
    </html>
<!-----------------------javascript代码---------------------->
        var win;
        function openWin(){
        var width=400;
        var height=300;
        var hcenter=(screen.width-width)/2;
        var vcenter=(screen.height-height-50)/2;
        var name="open"
        var appearance="width="+width+",height="+height+",left="+hcenter+",top="+vcenter;
        win=window.open("",name,appearance);
        win.document.write("这是脚本open()函数打开的新窗口!") 
        win.setTimeout("win.close()",2000); 
        //win.setTimeout("self.close()",2000);
        //window.setTimeout("win.close()",2000);
        //window.setTimeout("self.close()",2000);
    }
        //window.setTimeout("win.close()",2000);

问题一:在浏览器中测试,得到如下结果,为什么win和self不是同一个窗口对象的引用?
win.setTimeout("win.close()",2000); //ff,IE11中均无效,新窗口不会定时关闭
win.setTimeout("self.close()",2000); //ff,IE11中均有效,新窗口会定时关闭

问题二:以下两行代码有不同的结果,为什么window调用setTimeout()却能对win起作用?
window.setTimeout("win.close()",2000); //ff,IE11中均有效
window.setTimeout("self.close()",2000);//在IE11中有效,但关闭的不是新窗口,ff中无效

问题三:在函数openWin()之外,
window.setTimeout("win.close()",2000);
这行代码也可以定时关闭新窗口,但是第一次定时关闭窗口后,
接下来打开的新窗口都不会定时关闭,除非先刷新再打开新窗
口,这也不知为何?

  • 写回答

3条回答 默认 最新

  • lpfly 2015-08-08 09:06
    关注

    setTimeout()调用的是函数,你这边用字符串是错的。
    W3C的例子:

    setTimeout(function(){ alert("Hello"); }, 3000);
    
    评论

报告相同问题?

悬赏问题

  • ¥15 用windows做服务的同志有吗
  • ¥60 求一个简单的网页(标签-安全|关键词-上传)
  • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
  • ¥15 基于卷积神经网络的声纹识别
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 一直显示正在等待HID—ISP