我有一个C#webbrowser,它包含具有多个iframe的html页面。每个iframe都包含一个任意的html文件,通常包含图像。 img标签通常没有任何宽度或高度属性(即它通常只是<img src="someimage.jpg">
)。正确调整容纳未知尺寸图像的iframe
我已阅读过如何根据其内容来确定iframe的大小,并且已经使用jquery进行了工作。下面的jquery片段是存在于iframe的HTML:
$(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文件中定义(即web浏览器被示出其一):
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文档的$(document).ready事件。这很好 - 如果没有图像,文档的准备就绪事件会触发调整大小。如果存在图像,则每次图像加载完成时,iframe都会正确调整大小。
但是,加载大图像会导致iframe尺寸不正确,直到图像完全加载。由于我很少在图像标签中使用宽度和高度属性,我想我可以使用jquery来听图像的readystatechange事件,并且在“加载”时,选择图像的大小和大小即使在图像仍在加载时,iframe也是如此。不幸的是,至少在IE7中,readystatechange = loading仅在映像完成下载后发生。
有没有人有任何想法,我可以通过“<img src="someimage.jpg">
”简单地检测到我的html中引用的图像的大小,而无需等待整个下载的发生?我试图通过正确确定一切大小来提供最佳的用户体验,以便用户可以阅读iframe的其余部分,即使大图片需要一段时间才能下载。
谢谢! jean