window.open 为什么没有反应?



<script> function openwin(){ open = confirm('open?') if(open){ var url = prompt('url',"http://weibo.com"); window.open(url); } } </script> <input type="button" value="openwin" onClick="openwin();" >

如果是上面这样,不会弹出新窗口,而如果是下面这样就可以弹出窗口,什么原因?



<script> function openwin(){ if(confirm('open?')){ var url = prompt('url',"http://weibo.com"); window.open(url); } } </script> <input type="button" value="openwin" onClick="openwin();" >
阅读 8.5k
4 个回答

汗,因为你用了open全局变量啦,解析器把open解析成了window.open所以window.open这个函数被你的confirm结果覆盖了!

open 没有var吧

在浏览器下,直接定义的变量,方法,都是在window下面的

var method = function(){}

method  == window.method

所以你要習慣用 strict 模式,爲定義變量一定要聲明,而且要有用 IIF。

壞習慣害了你。。。

function openwin(){
    var open = confirm('open?')
        if(open){
            var url = prompt('url',"http://weibo.com");
            window.open(url);
        }
    }
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题