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

この投稿を見てください: window.open で開かれたウィンドウの onload イベントを検出する

別のドメインへのウィンドウを開いている場合、このイベントに関連付けることはできません。

その投稿には、試すことができるいくつかのことがあります。

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 で 2 番目のコード スニペットを試してみました。onload イベントは、呼び出し元のサイトと同じドメインにある URL を指している限り、うまく機能しました。URL を www.google.com に指定しても、イベントは発生しませんでした。これはブラウザのセキュリティ機能であり、あなたができることはあまりないと思います...

于 2013-03-09T10:20:02.677 に答える