如何判断多个iframe是否加载完成,加载完成后调用打印窗口

yan雨天青色 2021-02-22 03:00:09
我用了两种方法,如下:都没有实现,却也没有报错,请大佬看看

function print(){
debugger;
var iframeLength = document.getElementsByTagName("iframe").length;
var iframe_start = 0;
$('iframe').each(function () {
var src = $(this).attr('src');
$(this).onload = function () {
iframe_start++;
console.info(iframe_start);
if (iframe_start == iframeLength) {
window.print();
}
}
});
}
function print2() {
debugger;
var iframes = document.getElementsByTagName("iframe");
for (var i = 0; i < iframes.length; i++) {
var iframeId = iframes[i].id;
var currentIframe = document.getElementById(iframeId);
if (currentIframe.attachEvent) {
currentIframe.attachEvent("onload", function () {
// 等待iframe加载完成
});
continue;
} else {
currentIframe.onload = function () {
window.print();// iframe加载完成
}
}
}

}
...全文
314 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
yan雨天青色 2021-02-23
  • 打赏
  • 举报
回复
引用 5 楼 qq_42990824 的回复:
[quote=引用 4 楼 yan雨天青色 的回复:][quote=引用 2 楼 qq_42990824 的回复:]function print(){ debugger; var iframeLength = document.getElementsByTagName("iframe").length; var iframe_start = 0; $('iframe').each(function () { var src = $(this).attr('src'); /*$(this).ready(function () { iframe_start++; console.log(iframe_start,'iframe_start'); if (iframe_start == iframeLength) { window.print(); } })*/ // 此处错误 jq中使用ready $(this).onload = function () { iframe_start++; console.info(iframe_start); if (iframe_start == iframeLength) { window.print(); } } }); }
您好,我换成了您修改的那个:
$().ready(function () {
        print();
    });
    function print() {
        debugger;
        var iframeLength = document.getElementsByTagName("iframe").length;
        var iframe_start = 0;
        $('iframe').each(function () {
            var src = $(this).attr('src');
            $(this).ready(function () {
                iframe_start++;
                console.log(iframe_start, 'iframe_start');
                if (iframe_start == iframeLength) {
                    window.print();
                }
            });
        });
    }
然后页面就卡了,一直在加载,点击都没反应,直到最后加载停止,麻烦您帮我再看一哈,谢谢 [/quote] 你这引用了多少iframe?我这边看了下 没什么问题 看你这个无响应应该是太多的内容导致内存不够了 你试试先用三四个iframe看看还会卡吗[/quote] 我试了下就只有两个iframe,也是无响应,就很奇怪哈哈哈
前端人丶 2021-02-23
  • 打赏
  • 举报
回复
引用 4 楼 yan雨天青色 的回复:
[quote=引用 2 楼 qq_42990824 的回复:]function print(){ debugger; var iframeLength = document.getElementsByTagName("iframe").length; var iframe_start = 0; $('iframe').each(function () { var src = $(this).attr('src'); /*$(this).ready(function () { iframe_start++; console.log(iframe_start,'iframe_start'); if (iframe_start == iframeLength) { window.print(); } })*/ // 此处错误 jq中使用ready $(this).onload = function () { iframe_start++; console.info(iframe_start); if (iframe_start == iframeLength) { window.print(); } } }); }
您好,我换成了您修改的那个:
$().ready(function () {
        print();
    });
    function print() {
        debugger;
        var iframeLength = document.getElementsByTagName("iframe").length;
        var iframe_start = 0;
        $('iframe').each(function () {
            var src = $(this).attr('src');
            $(this).ready(function () {
                iframe_start++;
                console.log(iframe_start, 'iframe_start');
                if (iframe_start == iframeLength) {
                    window.print();
                }
            });
        });
    }
然后页面就卡了,一直在加载,点击都没反应,直到最后加载停止,麻烦您帮我再看一哈,谢谢 [/quote] 你这引用了多少iframe?我这边看了下 没什么问题 看你这个无响应应该是太多的内容导致内存不够了 你试试先用三四个iframe看看还会卡吗
yan雨天青色 2021-02-23
  • 打赏
  • 举报
回复
引用 2 楼 qq_42990824 的回复:
function print(){ debugger; var iframeLength = document.getElementsByTagName("iframe").length; var iframe_start = 0; $('iframe').each(function () { var src = $(this).attr('src'); /*$(this).ready(function () { iframe_start++; console.log(iframe_start,'iframe_start'); if (iframe_start == iframeLength) { window.print(); } })*/ // 此处错误 jq中使用ready $(this).onload = function () { iframe_start++; console.info(iframe_start); if (iframe_start == iframeLength) { window.print(); } } }); }
您好,我换成了您修改的那个:
$().ready(function () {
        print();
    });
    function print() {
        debugger;
        var iframeLength = document.getElementsByTagName("iframe").length;
        var iframe_start = 0;
        $('iframe').each(function () {
            var src = $(this).attr('src');
            $(this).ready(function () {
                iframe_start++;
                console.log(iframe_start, 'iframe_start');
                if (iframe_start == iframeLength) {
                    window.print();
                }
            });
        });
    }
然后页面就卡了,一直在加载,点击都没反应,直到最后加载停止,麻烦您帮我再看一哈,谢谢
前端人丶 2021-02-22
  • 打赏
  • 举报
回复
function print(){ debugger; var iframeLength = document.getElementsByTagName("iframe").length; var iframe_start = 0; $('iframe').each(function () { var src = $(this).attr('src'); /*$(this).ready(function () { iframe_start++; console.log(iframe_start,'iframe_start'); if (iframe_start == iframeLength) { window.print(); } })*/ // 此处错误 jq中使用ready $(this).onload = function () { iframe_start++; console.info(iframe_start); if (iframe_start == iframeLength) { window.print(); } } }); }

87,996

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧