如果iframe在src(pdf或text)中有非html文档,则iframe中的onload不起作用



我有一个带有onload处理程序的iframe:

<iframe id="FrameForPrintVersion" src="" border="0" style="height:0; width:0; visibility:hidden;" onload = 'frameOnload()' >

如果我使用html页面作为iframe的源,它可以很好地工作,但当我将src设置为任何pdf文档时就不行了。在这种情况下,是否可以处理PDF文档的加载?

根据W3C,iframe标记不支持任何事件属性。尽管主流浏览器支持它,但不能依赖它。如果你真的想要它,试试这个变通方法。你可以试试这样的东西。

setTimeout(function(){
    if($('#FrameForPrintVersion').contents().find('*')!='undefined') {
        alert('your frame loaded');
    }
},200)

这是IE的一个问题。我使用以下内容作为解决方案。

function dodisable() {
    var b1=document.getElementById('B1'); 
    b1.value='Please Wait....'; 
    b1.disabled=true;
    document.getElementById("browse").src = "hhhh.pdf"; /*LINK TO YOUR PDF*/
    setTimeout( URLoader_Timeout, 100);
}
function doenable() {
    var b1=document.getElementById('B1'); 
    b1.value='Submit'; 
    b1.disabled=false;
}
function URLoader_Timeout() { 
    if ( document.getElementById("browse").readyState == "complete")
        doenable();
    else
        setTimeout( URLoader_Timeout ,100);
}

HTML

<input type="button" name="B1" id="B1" value="Go" onclick="dodisable();" />
<iframe id="browse" onload="return  doenable();" style="width:100%;height:100%"></iframe>

最新更新