关于IMG的高度和宽度
帮朋友写段程序,因为申请的空间太小不能提供图片上传功能,所以请用户输入图片的链接地址。这样虽然解决了空间的问题,却可能因此影响页面的设计,如果使用固定的大小将导致图片失真,而不设置图片大小则会影响到页面的布局。
后台的VBScript完成后,我决定使用JavaScript自动调整图片的大小,实现该功能时遇到了一个问题,现将我的解决方法记录如下。如果哪位网友有相关经验,欢迎参与讨论。
首先,我使用DOM方法取得页面中name属性为的PicturesOfThisPost对象,遍历该对象数组,逐一处理IMG对象。可是,使用DOM取得的对象不能取得任何值,我分析,可能是因为HTML代码中没有设置width和height属性造成的。下面是我的测试代码:
1
function resisePicturesOfThisPost()2


{3
var pics = document.getElementsByName("PicturesOfThisPost");4
var i;5
var w, h, rate;6

7
for (i = 0; i < pics.length; i++)8

{9
w = pics[i].width;10
h = pics[i].weight;11

12
alert("width=" + w + ", h=" + h);13
}14
}既然上面的方法行不通,不能统一处理所有对象,我决定在HTML中使用onload事件,在每张图片加载成功后立即调整图片大小。经过测试该方法可行,下面是我的测试代码:
1
function resizePicture(pic)2


{3
var intMaxWidth = 600;4
var intRate = 1;5

6
if (pic.width > intMaxWidth)7

{8
intRate = intMaxWidth / pic.width;9

10
pic.width = pic.width * intRate;11
pic.height = pic.height * intRate;12
}13
}调用的HTML代码如下:
<img name="PicturesOfThisPost" src="140.jpg" border="0" onload="resizePicture(this);" />
虽然效果实现了,但是我有一个疑问:JavaScript对象和DOM对象有什么区别?
我在MSDN中没有找到相关的说明,如果哪位朋友有这方面的资料,还请不吝赐教。
