2012-08-22 12 views

Odpowiedz

1

To jest problem z IE. Używam następujących jako rozwiązanie.

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

Według W3C, znacznik iframe nie obsługuje żadnych atrybutów zdarzeń. Chociaż główne przeglądarki obsługują to, ale nie można na nich polegać. Jeśli naprawdę chcesz, spróbuj tego obejścia.Można spróbować coś takiego.

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

@aiiak Ta odpowiedź powinna być oznaczona jako poprawna! Sądzę również, że można użyć 'setInterval()' i 'clearInterval()' jako alternatywnego podejścia do odświeżania elementu iframe, w którym połączenie jest wolne lub dane odpowiedzi są duże. – RZet

Powiązane problemy