Jquery: how to check if a newly opened window has been fully loaded? / window loads an external page (like www.yahoo.com)

后端 未结 3 1604
孤街浪徒
孤街浪徒 2020-12-20 18:05

the following doesn\'t work , why ?

var myWindow=null;
myWindow = window.open(targetUrlVar,\"_blank\",\"resizable=yes\");
$(myWindow).load(function(){
    a         


        
相关标签:
3条回答
  • 2020-12-20 18:37

    I see this question is somewhat old.

    However, arthur stated,

    for targetUrlVar being an internal resource (like a page belonging to my domain) it works.. but as soon as i wanted to used the .load() or myWindow.onload() with a targetUrlVar being an external page (such as www.yahoo.com or www.google.com ), it doesn't work any more... No alert is displayed..

    I think that the issue may be due to the targetUrlVar being external; the alert may be blocked to prevent cross-site scripting (aka XSS).

    0 讨论(0)
  • 2020-12-20 18:45
    $(document).ready(function() {
       //perform tasks, DOM is loaded
    });
    

    Hope this helps.

    0 讨论(0)
  • 2020-12-20 18:46

    If you want to trigger the alert when the child window is open regardless of the state of the child window's DOM then this should work. I also provided a way to test this assumption.

    Create a test PHP script (or similar scripting language) with the following content:

    <html>
    <head><title>test</title></head>
    <body>
        <?php sleep(5); // Sleep to delay DOM from loading ?>
    
        Done sleeping...
    </body>
    </html>
    

    Then call this test page as your child window usingthe following javascript:

    win = window.open('test.php', 'test', 'width=300, height=400, x=800');
    win.focus();
    $(win.document).ready(function() {
        alert('Window is open');
    });
    

    You'll notice that the alert() from the parent window fires before you see "Done sleeping..." appear in the child window.

    0 讨论(0)
提交回复
热议问题