2012-08-22 2 views

Antwort

1

Das ist ein Problem mit IE. Ich benutze folgende als eine Lösung.

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> 
8

Laut dem W3C, wird der iframe-Tag keine Ereignisattribute unterstützen. Obwohl die meisten Browser dies unterstützen, kann man sich nicht darauf verlassen. Wenn Sie es wirklich wollen, versuchen Sie diese Problemumgehung. Sie können so etwas versuchen.

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

@aiiak Diese Antwort sollte als die richtige markiert werden! Außerdem könnten Sie 'setInterval()' und 'clearInterval()' als alternativen Ansatz zum Aktualisieren eines iFrames verwenden, wenn die Verbindung langsam ist oder die Antwortdaten groß sind. – RZet

Verwandte Themen