javascript - img onload 在 IE7 中效果不佳

标签 javascript html internet-explorer image

我的 webapp 中有一个 img 标签,它使用 onload 处理程序来调整图像大小:

<img onLoad="SizeImage(this);" src="foo" >

这在 Firefox 3 中工作正常,但在 IE7 中失败,因为图像对象被传递给 SizeImage()由于某种原因,函数的宽度和高度为 0——也许 IE 在完成加载之前调用了该函数?。在对此进行研究时,我发现其他人也遇到过与 IE 相同的问题。我还发现这不是有效的 HTML 4。这是我们的文档类型,所以我不知道它是否有效:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

是否有一种合理的解决方案可以在加载图像时调整其大小,最好是符合标准的解决方案?该图像用于用户上传自己的照片,几乎可以是任何尺寸,我们希望以最大 150x150 的尺寸显示它。如果您的解决方案是在上传时调整图像服务器端的大小,我知道这是正确的解决方案,但我被禁止实现它:(它必须在客户端完成,并且必须在显示时完成。

谢谢。

编辑:由于我们应用程序的结构,在文档的加载中运行此脚本是不切实际的(几乎不可能)。我只能合理地编辑图片标签及其附近的代码(例如我可以在其正下方添加一个 <script>)。此外,我们已经有了 Prototype 和 EXT JS 库......管理层宁愿不必添加另一个(一些答案建议使用 jQuery)。如果可以使用这些框架解决这个问题,那就太好了。

编辑 2:不幸的是,我们必须支持 Firefox 3、IE 6 和 IE 7。最好也支持所有基于 Webkit 的浏览器,但我们的网站目前不支持它们,我们可以容忍仅适用于 Big 3 的解决方案。

最佳答案

如果你不需要支持 IE 6,你可以只使用这个 CSS。

yourImageSelector {
    max-width: 150px;
    max-height: 150px;
}

关于javascript - img onload 在 IE7 中效果不佳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/198892/

相关文章:

javascript - IE6 : JavaScript hyperlink not working

internet-explorer - 如何在IE开发人员工具中以交互方式删除选定的HTML元素?

html - IE 9 的 Magic Zoom z-index 问题

javascript - 替换每个在 jQuery 中不起作用

javascript - 我无法在 javascript 循环期间使用 jQuery 附加元素

javascript - 每次我按下按钮时,Jquery 都会阻止追加成倍增加

javascript - 处理 angularjs 测试中的依赖关系

html - 媒体查询 Bootstrap 问题

php - 只允许在 PHP 表单中选择一个单选按钮

jquery - Bootstrap 网格样式忽略偏移量