【问题标题】:Detect if a newly opened window is fully loaded with the contents appended to it [duplicate]检测新打开的窗口是否已完全加载附加的内容[重复]
【发布时间】:2012-12-03 18:21:34
【问题描述】:

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

所以我有这个功能,它需要一些html代码,它会打开一个新窗口并将代码放在窗口中,然后提示打印功能。但是,有时,打印 css 没有被加载,并且打印没有构建正确的页面。有什么方法可以查看新打开的窗口是否加载了所有内容?

function printer(el)
    {
        print_window= window.open();

        var print_css = '<link rel="stylesheet" href="css/bootstrap.css" type="text/css" />'; 

        print_css = print_css + '<link rel="stylesheet" href="css/main.css" type="text/css" />';
        print_css = print_css + '<link rel="stylesheet" href="css/print.css" type="text/css" media="print" />';


        print_window.document.write("<html><head>" + print_css + "</head><body>" + "<div class='contents'>" + el + "</div>" + "</body> </html>");
        print_window.document.close();
        print_window.focus();
        print_window.print();
        print_window.close();

    }

谢谢

【问题讨论】:

  • print_window.onload 工作吗?
  • 顺便说一句,我在您的代码中没有看到 jQuery。您的意思是将其添加为标签吗?
  • print_window.onload 确实有效,但由于某种原因,它不能很好地与打印功能一起使用。当我尝试发出警报时,它可以工作,但是对于打印,新打开的窗口只是停留在那里,没有任何提示。
  • 对不起,我以为 jQuery 会有解决方案,所以我标记了 jQuery。

标签: javascript html


【解决方案1】:

这可能会有所帮助 -- 使用 window.onload 事件处理程序:

print_window.document.close();
print_window.onload = function() {
    print_window.focus();
    print_window.print();
    print_window.close();
};

window.onload 的往常一样,在所有链接的图像、脚本和样式表都加载并准备好之前,该事件不会触发。

http://jsfiddle.net/mblase75/3BEkV/

【讨论】:

  • 谢谢,但由于某种原因,它无法正常工作。正在从主窗口触发打印命令,我试图避免这种情况,因为 Chrome 不允许在另外 30 秒内打印。而新打开的窗口只是停留在那里,没有关闭。我正在测试最新版本的 Chrome。
猜你喜欢
  • 2011-11-04
  • 2014-11-08
  • 2021-11-04
  • 2011-09-19
  • 2014-12-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多