您的位置:首页 > Web前端 > JQuery

关于ie6,ie7中修改img的src属性的一点心得

2013-04-28 00:00 423 查看
今天本来是要写一个slide的。结果发现了如下的bug...网上找资料都没有说这样的bug,也不知道怎么修复

本来我是要写一个slide的,然后写完了,在ie6下测试的时候发现了一个bug

当我通过jquery的方法获得img的src值中发现的问题,主要是ie6

在ie6,7下面通过jquery的attr("src")获得的值与其它浏览器下获得的属性值是不一样的,在ie6,7中获得的是加上域名的值,比如说

<img id="test" src="image/1.jpg"/>
//通过jquery获得的src
$("#test").attr("src");
//一般浏览器会返回字符串"image/1.jpg"但是在ie浏览器里会返回如下:http://localhost:/image/1.jpg
所以我也觉得很奇怪,为什么会这个样子,当然我是想要获得图片的数字,然后通过改变数字来修改浏览器里的图片,可是我也觉得这样是可以的,所以我为了获得1这个数字通过一下方法进行了修改,
var http = location.href.length//获得域名长度,然后通过计算长度,加上image/的长度用slice(len,len+1)来获得1这个数据
这样算是成功获取了长度,也成功进行了判断,但是又有ie6的新bug 了,就是我想要通过用jquery的attr("src","newsrc")方法来设置img的新的值的时候,又发生了错误。这个问题大师给我说了原因,在ie6,7浏览器里的js,不支持用setattribute()方法来修改src里的值,或者是input的type属性,因为这样会导致安全的问题,这个bug,大师说了现在只有一个办法修复,而且兼容性最好,就是获得原来所有图片节点的值,然后进行节点保存在一个变量里,然后删除这些节点,把保存的节点进行修改后在插入到原来的页面里面。过程不是很复杂,但是我没哟去实现,大师说这样确实好复杂的,我问大师怎么办,大师说参考之前他写的slide模块,并不是通过修改src来实现滑动的,而是在一个ul里面的li里把所有的图片放在一起,然后用过设置父div的css属性overflow:hidden来隐藏不需要看到的区域,然后通过设置位置还是什么属性的(记不清了,明太要用这种方法实现,实现了我再贴代码上来)来改变位置,这种方法真不错,明天要实现它。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ie6 jquery src attr() img