给image元素赋予未编码的路径,会发生很有意思的情况,执行如下js代码
var img = new Image();
img.onload = function () {
var src = img.src,
attrSrc = img.getAttribute('src'),
out = [];
out.push('src : ' + src);
out.push('attrSrc : ' + attrSrc);
out.push('src === attrSrc : ' + (src === attrSrc) );
window.alert(out.join('\n\n'));
};
img.src = '好的 空格&&&&.png'
测试的结果(注意,img.src 赋值未编码的路径)
结论:
img.src 与 img.getAttribute('src')的值可能是不同的,
js编程时注意用统一的方式(用img.src比较好些)去获取图片的路径值
百度了一下,发现了类似问题的总结:
IE6/7中getAttribute获取href/src 属性(相对路径0值与其它浏览器不同
http://www.jb51.net/article/28114.htm
update:
连接<a/>获取href时,也存在类似的问题
为此,统一获取img的src, <a />的href的方式,见代码:
/**
* 统一获取图片src的方式
* 禁止使用img.getAttribute('src')和$(img).attr('src')的方式去获取图片src
* see more : http://blog.csdn.net/fudesign2008/article/details/7620985
*
* @author FuDesign2008@163.com
* @date 2011-10-28
* @time 下午03:26:52
*/
var getImgSrc = function(img) {
if (img && img.src) {
return img.src;
}
};
/**
* 统一获取连接<a/>获取href的方式
* 禁止使用link.getAttribute('href')和$(link).attr('href')的方式去获取图片href
* see more :
* http://blog.csdn.net/fudesign2008/article/details/7620985
*
* @author FuDesign2008@163.com
* @date 2011-10-12
* @time 下午06:34:22
*/
var getAnchorHref = function(link) {
if (link && link.href) {
return link.href;
}
};