我在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()
直接调用时,相同的功能有效有什么想法吗?
由于
答案 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>