Javascript window.open 什么都不做,不产生错误

Javascript window.open does nothing, produces no error

本文关键字:错误 Javascript open 什么 window      更新时间:2023-09-26

所以我被要求在每次用户加载页面时生成一个新窗口的地方使用它。所以我在标签中创建了以下代码...

<SCRIPT TYPE="text/javascript">
            function popup(mylink, windowname) {
                if (! window.focus) return true;
                var href;
                if (typeof(mylink) == 'string') {
                    href = mylink;
                } else {
                    href = mylink.href;
                    window.open(href, windowname, 'width=400,height=200');
                }
                return false;
            }
        </SCRIPT>

和 onLoad 函数以在页面加载时创建弹出窗口

<body onLoad="popup('http://yahoo.com', 'ad')">

但是,什么也没发生。不会创建选项卡,也不会创建新窗口,并且通过Firebug查看时,不会产生任何错误。在chrome,Firefox和IE9上尝试这样做,结果相同,没有一个浏览器抱怨他们阻止了弹出窗口。我在这里错过了一些非常简单的东西吗?

如果mylink是一个字符串(在你的例子中是这样(,你永远不会调用window.open

if (typeof(mylink) == 'string') {
    // Code takes this path
    href = mylink;
} else {
    // Not this one
    href = mylink.href;
    window.open(href, windowname, 'width=400,height=200');
}

话虽如此:如果您修复此问题,您将收到弹出窗口阻止程序的警告/错误。浏览器会阻止网站打开弹出式窗口,除非直接响应用户操作(如点击(。网站在页面加载时打开弹出窗口是原因之一。


旁注:typeof是一个运算符,而不是一个函数。操作数周围不需要括号。