JS的iframe加载完成事件怎么写

如题,现在需求是,当iframe里面的内容加载完成之后再执行某个事件,根据网上的方法我都实验了,但是我感觉他们是网页框加载完成事件而不是里面的内容加载完成,希望大神指教
FineReport恍1 发布于 2017-3-13 18:29
悬赏:2 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共17回答
最佳回答
0
macro_hard发布于2017-3-13 18:29(编辑于 2023-9-6 09:34)
555
  • 恍1 恍1(提问者)


        var scr = document.getElementsByTagName(\"PDFVIEW\");
        alert(scr)
        alert(scr.attachEvent)
    if (scr.attachEvent){       //判断是否为ie浏览器   
           scr.attachEvent(\"onload\", function(){                    //如果为ie浏览器则页面加载完成后立即执行   
           $(\"#PDFVIEW\").height($(\"#PDFVIEW\").contents().find(\"#viewer\").height()+40 );      alert(1)
           });   
        } else {   
           scr.onload = function(){              //其他浏览器则重新加载onload事件   
            $(\"#PDFVIEW\").height($(\"#PDFVIEW\").contents().find(\"#viewer\").height()+40 );      alert(2)
           };   
    }

    我这样写不行吗,大神
    回复
    2017-03-14 09:43 
最佳回答
0
恍1发布于2017-3-14 09:43(编辑于 2023-9-6 09:34)
555
  • macro_hard macro_hard

    你的html页面有id 和name 都是 PDFVIEW的iframe么
    html页面引入jquery.js了么,不然不能用jquery选择器
    回复
    2017-03-14 15:31 
最佳回答
0
恍1发布于2017-3-14 15:10(编辑于 2023-9-6 09:34)
555
最佳回答
0
macro_hard发布于2017-3-14 15:31(编辑于 2023-9-6 09:34)
555
  • 恍1 恍1(提问者)

    这些都是有的,我好像知道什么问题了,load只是里面的PDFJS的viewer加载结束,并不能判断出,我用viewer传参后打开PDF完成结束这个事件,所以还是只能用延时来判断加载结束,虽然不好。大神您还有思路吗?稍微简单的点,太复杂我就延时了,感谢回复
    回复
    2017-03-14 15:41 
最佳回答
0
恍1发布于2017-3-14 15:41(编辑于 2023-9-6 09:34)
555
  • macro_hard macro_hard

    你的html页面的pdfview这个iframe嵌入cpt,cpt里面嵌了viewer.html?
    那你试试在cpt的加载结束事件里去改父页面的iframe高度
    回复
    2017-03-14 15:54 
最佳回答
0
macro_hard发布于2017-3-14 15:54(编辑于 2023-9-6 09:34)
555
  • 恍1 恍1(提问者)

    我就是这么做的,我现在是这样写的
    var $td=$(\"#C3-0-0\");
    var $span=$td.find(\"span\");
    var spanText=$span.text();

    var pdfUrl=\"/WebReport/pdfjs/web/viewer.html?bin=\"+decodeURIComponent(decodeURIComponent($span.attr(\"onclick\").split(\"\'\")[1]));
    $td.append(\"<a href=\'\"+pdfUrl+\"\' target=\'PDFVIEW\'>\"+spanText+\"</a>\");
    $span.remove();
    FR.doHyperlinkByPost(pdfUrl,{para:1},\'PDFVIEW\');

       $(\"#PDFVIEW\").load(function(){   
      setTimeout(function() {   
    $(\"#PDFVIEW\").height($(\"#PDFVIEW\").contents().find(\"#viewer\").height()+40 );  
       }, 300);
       setTimeout(function() {   
    $(\"#PDFVIEW\").height($(\"#PDFVIEW\").contents().find(\"#viewer\").height()+40 );

       }, 450);  
        });
    您看有没有优化的办法,没有就算了吧,麻烦您了
    回复
    2017-03-14 15:59 
  • 恍1 恍1(提问者)

    是pdfview嵌入FR的iframe
    回复
    2017-03-14 16:00 
最佳回答
0
恍1发布于2017-3-14 15:59(编辑于 2023-9-6 09:34)
555
最佳回答
0
恍1发布于2017-3-14 16:00(编辑于 2023-9-6 09:34)
555
  • macro_hard macro_hard

    你是要iframe自适应viewer.html里面div的高度?
    可以在viewer.html 或者 viewer.js里面类似这样写
    var pdfView=window.parent.document.getElementById(\"PDFVIEW\");
    pdfView.style.height=\"100px\";
    回复
    2017-03-15 00:32 
最佳回答
0
macro_hard发布于2017-3-15 00:32(编辑于 2023-9-6 09:34)
555
  • 恍1 恍1(提问者)

    我是要PDF能扩展下去,就是没有下拉滚动条,比如我有2页的PDF,那么我的那个ifram就增加宽度,直到没有下拉条,我上面的获取的那个id为viewer的标签的高度就是里面PDF的实际高度,我再返回来赋给iframe达到效果,您这句话是写死100高度?好像不行吧?
    回复
    2017-03-15 09:55 
最佳回答
0
恍1发布于2017-3-15 09:55(编辑于 2023-9-6 09:34)
555
  • macro_hard macro_hard

    我这是举例,viewer这个div没有height,viewer下的div才有height,一页pdf一个div,加起来才是总的height。
    但是你让iframe自适应所有pdf加起来的height不太合理吧,不是应该iframe自适应当前浏览器,然后viewer.html自适应iframe(这个应该是已经自适应了的)
    回复
    2017-03-15 11:03 
  • 0关注人数
  • 1065浏览人数
  • 最后回答于:2017-8-24 16:29
    活动推荐 更多
    热门课程 更多
    返回顶部