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

问题描述

小白很是迷惑,求大神解救(关于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);
这行代码也可以定时关闭新窗口,但是第一次定时关闭窗口后,
接下来打开的新窗口都不会定时关闭,除非先刷新再打开新窗
口,这也不知为何?

解决方案

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

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

解决方案二:

@lpfly setTimeout 第一个参数可以是字符串形式的代码:

解决方案三:

因为你在setTimeout的第一个参数中输入的是一个字符串,而不是函数,所以函数没有被执行

时间: 2025-01-01 08:28:07

javascript-小白很是迷惑,求大神解救(关于setTimeout()和open())的相关文章

asp.net网站不兼容360浏览器问题,很诡异,求大神帮忙

问题描述 asp.net网站不兼容360浏览器问题,很诡异,求大神帮忙 如下图这个是在本地用VS调试的情况,用360浏览器运行这个很正常,但是部署到服务器以后再用360浏览器访问是这样,布局已经乱了.这是怎么回事呢?IE 火狐 猎豹等等十几个目前主流的浏览器里面都测试了,只有360有这个问题,其他都很正常,请问这是怎么回事呢?求大神帮忙!!! 解决方案 Firefox好的360急速应该没问题..chrome显示怎么样?360急速模式用的webkit核心,和chrome一样,有开发工具的,右键审核

控制器-小白单片机选片 求大神帮忙

问题描述 小白单片机选片 求大神帮忙 项目需求:做一个控制器,实现8路模拟量采集,2路脉冲信号采集,30路开关量采集: 30路开关量输出: 两个485通讯串口: 求各位大神帮忙 选一款单片机!!!! 在此谢过 ! 万分感谢! 解决方案 http://wenku.baidu.com/link?url=bc0udEBoPM12-yuQW8DA-ycDKXH2b1a6SlOYrwyJzpZ_GYmQjvkBdl78a6uitG-m66pi96-Vu06az5t35vGQ1U_1uG5NbB6nKPCb

c语言编程-小白一枚!求大神指点如何学习C

问题描述 小白一枚!求大神指点如何学习C 如题,我之前学习过java现在也在从事这方面的工作,想学习c确不知道从哪里下手 解决方案 我给一个过来人的答案吧 虽说不适什么大牛,但是也有一些小小的体会! 上了大学才知道有编程!开始就接触c语言,但就是不知道c能干啥!然后就是玩玩单片机,本科偏硬件专业,所以单片机和c搞了搞!最后也没干出来啥明堂!后来学了数据结构,卧槽-一下子感觉c语言脑洞大开!体会真的不一样!再后来看Java,搞安卓开发到现在!越来越体会到c是必须要学的!我支持你学c!!!首先把语法

ibatis报错,很奇怪,求大神帮忙

问题描述 ibatis报错,很奇怪,求大神帮忙 现在项目中用的是ibatis,第一次接触,这两天一直在报错,都要疯了,请大神帮忙看看吧. 配置如下: resultMap="cpVoucherResultCheckIn" parameterClass="elementCondition"> select master.* from cp_voucher master where master.sum_cp_voucher_id is null and maste

信息-C++编程问题,不是很懂,求大神解决

问题描述 C++编程问题,不是很懂,求大神解决 定义一个Computer类,包括数据成员CPU(字符串)和Memory(字符串),定义构造函数初始化CPU和Memory的值,定义函数showInfo()显示系统配置信息.定义一个MobilePhone类,包括数据成员联系人Contact(字符串数组),定义构造函数初始化Contact的值,定义函数display()显示联系人信息,定义函数call()拨打电话.定义派生类SmartPhone,继承Computer和MobilePhone类,新增数据

logcat-The application has stopped unexpectedly. 求大神解救!!

问题描述 The application has stopped unexpectedly. 求大神解救!! 一开模拟器就出现the process android.process.acore has stopped unexpectedly.Please try again.然后点程序就出现The application xxx has stopped unexpectedly. Please try again.下面是Logcat 但是这程序在安装到手机上又能用,大神们!!是什么问题啊 解决

node js-关于windows 7 64位 pomelo的安装 求大神解救

问题描述 关于windows 7 64位 pomelo的安装 求大神解救 最近想研究下Node.js 在安装pomelo的时候 总是报错 求大神些帮忙解决下 怎样才能成功搭建node.js和pomelo谢谢大家. 解决方案 pomelo是基于Node.js的,目前pomelo已经完全支持Windows.Linux.Mac等多种平台.Win8 都可以安装了,Win7 还有问题吗? 准备确保你的机器可以上网因为安装pomelo的过程需要从网上下载其依赖的包. 确保你的系统上已经要安装了Node,目前

react router-React Router 2.0 使用不成功,求大神解救

问题描述 React Router 2.0 使用不成功,求大神解救 最近学使用React和React的路由,但是第一个DEMO一直写不出来,现在报错是 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>react</title> <script src="libs/react-0.14.8/build/react-with-add

Win8开发记事本几个功能遇到难题求大神解救

问题描述 本人小白一个,刚学win8开发,学校让开发一个类似记事本的APP,我不知道怎样给一个文件保存时候加上密码,然后打开的时候验证密码才能打开,还有我不知道怎样实现更改字体大小和颜色,不到一个周就要检查项目了,求大神解救谢谢谢谢! 解决方案 解决方案二:把精力放在记事本功能本身吧.解决方案三:引用1楼sp1234的回复: 把精力放在记事本功能本身吧. 就是