2012-08-22 6 views

Respuesta

1

Eso es un problema con IE. Estoy usando los siguientes como una solución.

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

Según el W3C, la etiqueta iframe no es compatible con cualquiera de los atributos de eventos. Aunque los principales navegadores lo admiten, pero no se puede confiar en él. Si realmente lo quieres, prueba esta solución alternativa. Puedes probar algo como esto.

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

@aiiak ¡Esta respuesta debería marcarse como la correcta! Además, supongo que podría usar 'setInterval()' y 'clearInterval()' como un enfoque alternativo para actualizar un iFrame donde la conexión es lenta o los datos de respuesta son grandes. – RZet

Cuestiones relacionadas