Существует множество страниц, посвященных запуску загрузки самого iframe, но я хотел бы вызвать событие загрузки изображения в iframe.Я буду делать это через несколько фреймов, и изображение может иметь одинаковый идентификатор во всех них.Так что, хотя я обычно могу сделать:
$("#image_loading").load(function(){
alert("loaded");
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<img id="image_loading" src="https://upload.wikimedia.org/wikipedia/commons/thumb/8/84/Example.svg/1024px-Example.svg.png">
и я могу идентифицировать изображения в iframe, используя find как в this fiddle (так как я не могу заставить iframes работать в SO)используя:
$("#IFRAME_ID").contents().find('img')[0].id;
epascarello указал, что они могут быть объединены с:
$("#IFRAME_ID").contents().find('img').on("load", function() {})
, который иногда работает.Однако загружаемые изображения имеют несовместимое время загрузки, и поэтому, когда я пытаюсь выполнить следующее:
doc.open();
doc.write(<img src="IMAGE URL HERE"/>);
doc.close();
$("#trial"+index).contents().find('img').on("load",function(){
alert("hi");
});
Я только непоследовательно получаю предупреждение «привет», когда изображение загружается.Я предполагаю, потому что изображение уже загружено событием при загрузке.
Есть ли способ надежно вызвать событие при загрузке изображения в iframe?