window.open()在Android上从setTimeout调用时返回undefined

时间:2010-08-30 14:18:42

标签: javascript android

我在Android模拟器上遇到了奇怪的行为。当从setTimeout或回调函数调用时,window.open()总是返回undefined AJAX回调。但是,当从事件处理程序调用时,window.open()会成功打开一个弹出窗口,例如的onclick 这是示例代码:

<html>
<head>
</head>
    <body>
    <script type="text/javascript">
    function fnc()
    {
      setTimeout(function() { alert(window.open('about:blank')) }, 100);
    }
    </script>
    <input type="button" onclick="fnc()" value="push me">
    </body>
</html>

在示例警报(window.open('about:blank'))中显示'undefined'并且未创建弹出窗口 从fnc()

直接调用时,相同的功能有效

有什么想法吗?

由于

1 个答案:

答案 0 :(得分:3)

尝试以下方法:

<html>
    <head>
        <script type="text/javascript">
            function go(){
                window.open('about:blank');
            }
            function fnc()
            {
                var buttonnode= document.createElement('input');
                buttonnode.setAttribute('type','button');
                buttonnode.setAttribute('name','sal');
                buttonnode.setAttribute('style','display:none;');
                document.body.appendChild(buttonnode);

                buttonnode.onclick = go;

                setTimeout(function() { buttonnode.click() }, 100);
            }
        </script>
    </head>
    <body>
    <input type="button" onclick="fnc()" value="do later"><br/>
    </body>
</html>