变量可以存window对象(不确定是不是这个称呼)

变量可以存window对象(不确定是不是这个称呼)

<!DOCTYPE html>

<html>

    <head>

        <meta charset="UTF-8">

        <title>打开/关闭页面</title>

    </head>

    <body>

       <input type="button" value="关闭本页面" id="close">

       <input type="button" value="打开慕课网" id="open">

       <script type="text/javascript">

           //补充代码

   var btnClose=document.getElementById('close');

   var btnOpen=document.getElementById('open');

   var test;

   btnOpen.onclick=function(){

   test=window.open("http://www.imooc.com","imooc");

   // console.log(test);

   }

   btnClose.onclick=function(){

   test.close();

   }

       </script>

    </body>

</html>

var test=window.open("http://www.imooc.com","imooc")这里的test是windows对象吗,变量可以存windows对象吗。

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学你好,抱歉第一次分析的不完整。可以做如下分析:

(1)直接点击“关闭页面”,是无法关闭的。因为执行btnClose.onclick的脚本的话,btnOpen.onclick没有被触发,那么test变量还是初始默认值为undefined,所以test.close();方法也会无法生效的,会报错:

http://img1.sycdn.imooc.com//climg/5e6f10d609e9a05d04490056.jpg

http://img1.sycdn.imooc.com//climg/5e6f10ff092e1f6404870280.jpg

(2)假如先执行“打开页面”,再执行“关闭页面”,这时候test不是window对象,是window.open("http://www.imooc.com","imooc");,但这个并不是一个window对象。可以打印看一下:

http://img1.sycdn.imooc.com//climg/5e6f148c0939060703040074.jpg

http://img1.sycdn.imooc.com//climg/5e6f14a70960143f03940037.jpg

打印的意思是一个全局变量。所以也不能实现关闭页面的效果。基于此情况,所以建议在回复一中建议关闭页面使用window.clost()。

祝学习愉快~

好帮手慕码 2020-03-16 11:13:59

同学你好,解答如下:

(1)是window对象,可以存储。

(2)但是在关闭的时候是有问题的:

http://img1.sycdn.imooc.com//climg/5e6eee43090d108604120170.jpg

http://img1.sycdn.imooc.com//climg/5e6eee4b097a784700900028.jpg

在 btnOpen.onclick的作用域下,它是window.open("http://www.imooc.com","imooc");,在其他作用域下,查找到的也不是window对象, 建议修改如下:

http://img1.sycdn.imooc.com//climg/5e6eeeda0970e39803000119.jpg

如果我的回答帮到了你,欢迎采纳,祝学习愉快~

  • 提问者 王文辉 #1
    关于2,应该全部都是window对象啊,我在btnOpen.onclick之前定义了一个test(在函数外面定义变量),在btnOpne.onclick事件函数中赋值的(函数内部赋值); var btnClose=document.getElementById('close'); var btnOpen=document.getElementById('open'); var test; btnOpen.onclick=function(){ test=window.open("http://www.imooc.com","imooc"); // console.log(test); }
    2020-03-16 13:18:06
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师