저는 여러 iframe이있는 html 페이지를 보유하고있는 C# webbrowser를 보유하고 있습니다. 각 iframe에는 이미지가있는 임의의 html 파일이 들어 있습니다. img 태그에는 폭 또는 높이 속성이없는 경우가 종종 있습니다 (예 : <img src="someimage.jpg">
).알 수없는 치수의 이미지를 보유하고있는 iframe의 크기를 적절하게 조절합니다.
콘텐츠를 기준으로 iframe의 크기를 조정하는 방법에 대해 읽었으며 jquery를 사용하여 작동하도록했습니다.
$(document).ready(function() {
$('img').each(function(){
$(this)
.bind('load readystatechange', function(e) {
var iframes = window.top.document.getElementsByName(window.name);
if (iframes.length == 1) {
window.top.DoResizeFrame(iframes[0]);
}
})
});
DoResizeFrame를 부모 html 파일에 정의합니다 (웹 브라우저가 표시되고있는 것) :
function DoResizeFrame(fr) {
if (fr && fr.Document && fr.Document.body) {
fr.style.height = fr.Document.body.scrollHeight + 'px';
fr.style.width = fr.Document.body.scrollWidth + 'px';
}
}
나는 또한 부모로부터 DoResizeFrame를 호출 다음 JQuery와 조각은 iframe 대응의 HTML에 존재 문서의 $ (document) .ready 이벤트. 이것은 효과적입니다 - 이미지가 없으면 문서의 준비 이벤트가 크기 조정을 트리거합니다. 이미지가있는 경우 이미지로드가 끝날 때마다 iframe의 크기가 올바르게 조정됩니다.
그러나 큰 이미지를로드하면 이미지가 완전히로드 될 때까지 iframe의 크기가 잘못 조정됩니다. 드물게 이미지 태그의 너비와 높이 속성을 가지고 작업 할 때가 있기 때문에 jquery를 사용하여 이미지의 readystatechange 이벤트를 청취 할 수 있다고 생각했습니다. 그리고 이미지가로드 될 때 이미지의 크기와 크기를 선택합니다. 이미지가로드되는 동안에도 iframe. 불행히도 적어도 IE7에서 readystatechange = loading은 이미지 다운로드가 완료된 후에 만 발생합니다.
전체 다운로드가 발생하기를 기다리지 않고 단순히 "<img src="someimage.jpg">
"으로 내 HTML에서 참조되는 이미지의 크기를 쉽게 감지 할 수있는 사람이 있습니까? 큰 이미지를 다운로드하는 데 시간이 오래 걸리는 경우에도 사용자가 모든 iframe을 읽을 수 있도록 모든 것을 정확하게 크기를 조정하여 최상의 사용자 환경을 제공하려고합니다.
감사합니다. 진