gpt4 book ai didi

javascript - 在通过 child.print() 打印之前,如何等待图像加载到新窗口中?

转载 作者:行者123 更新时间:2023-11-28 02:43:08 24 4
gpt4 key购买 nike

    $("#print").on('click', function () {
var child = window.open("image.jpg", "_blank", "location=0,toolbar=0,scrollbars=1,fullscreen=1,menubar=0");
//any way to know/wait for image to load?
child.print();
});

有什么方法可以让我的父窗口在调用 .print() 之前知道子窗口已完成加载图像吗?如果他们高兴的话,他们最终会打印一张空白页。

我都尝试过:

child.attachEvent("onload", function () { child.print(); });

child.attachEvent("DOMContentLoaded", function () { child.print(); });
//(found this online, apparently it's Firefox only, still didn't work)

最佳答案

您需要创建一个页面,即 print.html 并向其中添加以下脚本:

<html>
<head>
</head>
<body>
<script>
(function( w, d ) {
var paramsHash = {},
img = new Image();

(function() {
var qs = w.location.href.split( '?' )[ 1 ],
items = [],
l = 0,
i = 0,
param;
if( qs && qs.indexOf( '&' ) ) {
items = qs.split( '&' );
} else {
items = [ qs ];
}
l = items.length;
for( ; i < l; i++ ) {
param = items[i].split( '=' );
paramsHash[ param[ 0 ] ] = param[ 1 ];
}
})();
console.log(paramsHash);
img.src = paramsHash.img;
//after the image is loaded, call this function
img.onload = function() {
window.print();
};
d.body.appendChild( img );

})( window, document );
</script>
</body>
</html>

然后像这样使用它:

$("#print").on('click', function () {
window.open("print.html?img=image.jpg", "_blank", "location=0,toolbar=0,scrollbars=1,fullscreen=1,menubar=0");
});

关于javascript - 在通过 child.print() 打印之前,如何等待图像加载到新窗口中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12359150/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com