Onload в iframe не работает, если iframe имеет не-html-документ в src (pdf или текст)
У меня есть iframe с обработчиком onload:
<iframe id="FrameForPrintVersion" src="" border="0" style="height:0; width:0; visibility:hidden;" onload = 'frameOnload()' >
Он отлично работает, если я использую html-страницы в качестве источника iframe, но не тогда, когда я устанавливаю src в любой PDF-документ.
Можно ли обрабатывать, когда в этом случае был загружен документ PDF?
Ответы
Ответ 1
В соответствии с W3C тег iframe не поддерживает атрибуты событий.
Хотя основные браузеры поддерживают его, но на него нельзя положиться.
Если вы действительно хотите попробовать это обходное решение. Вы можете попробовать что-то вроде этого.
setTimeout(function(){
if($('#FrameForPrintVersion').contents().find('*')!='undefined') {
alert('your frame loaded');
}
},200)
Ответ 2
Это проблема с 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>