0

这是我的代码。我的问题是,当我单击按钮时,window.open 功能正常工作并显示一个弹出窗口,但在此之后,页面无法重定向到定义位置:

<script type="text/javascript">
    var win=null;

    $(document).ready(function() {

        $("#buttonid").live("click",function(){

            var alt = "http://www.testhost.com/test.php";
            var rel = "http://www.testhost.com/test2.php";               
                var width= (window.innerWidth)-450;
                var win = window.open(alt,"mywin","width=450,height="+window.innerHeight+",left="+width+", location=no, menubar=no, status=no, titlebar=no, scrollbars=no");

                win.onload=function(){

                    window.location=rel;
                 }
                 win.blur();
                 //setTimeout(win.focus(), 0);
                 return false;


    });
    });
</script>
</head>
<body>
<button id="buttonid">Click</button>
</body>
4

2 回答 2

0

您需要按如下方式指定它,

win.onload=function()
{
    window.open.location=rel;
}
于 2013-03-09T10:18:43.903 回答
0

看看这篇文章:Detecting the onload event of a window opens open with window.open

如果您要打开另一个域的窗口,您将无法参与此活动。

那篇文章有几件事你可以尝试。

win.addEventListener('load', function () {
    alert('popup loaded');
}, false);

这是一个更理想的跨浏览器解决方案(同样,它来自该链接):

win[win.addEventListener ? 'addEventListener' : 'attachEvent'](
  (win.attachEvent ? 'on' : '') + 'load', function () {
    alert('popup loaded');
}, false
);

编辑:刚刚在 IE10、FF18 和 Chrome 25 中尝试了第二个代码片段。 onload 事件效果很好,只要它指向与调用它的站点位于同一域的 URL。即使我将 URL 指向 www.google.com,我的事件也从未触发。这是浏览器的一项安全功能,我认为您对此无能为力...

于 2013-03-09T10:20:02.677 回答