对于一个img元素,我们想获取它的src属性时可以有两种方式:

1、xxx.getAttribute("src")

2、直接通过xxx.src获取属性值

在src的属性值为相对路径时,这两者的结果在不同浏览器会有一些不同哦。

以此为例:

var img=document.getElementById('logo');
alert("src:"+img.src);
// iE7-: src:http://localhost/test/images/logo.png
// iE8+ Chrome Firefox: src:http://localhost/test/images/logo.png alert("getAttribute:"+img.getAttribute("src"));
// iE7-: src:http://localhost/test/images/logo.png
// iE8+ Chrome Firefox:getAttribute:images/logo.png

那么如何让IE低版本的getAttribute("src")方法也返回相对路径呢,这里就要用到IE特有的getAttribute方法的第二个参数:

img.getAttribute("src",2)

除了img的src属性外,a标签的href属性也存在此问题,同样设置第二个参数为2即可。

我们看下微软对第二个参数的解释:http://technet.microsoft.com/zh-cn/library/aa752280

0:默认值。搜索属性时大小写不敏感

1:搜索属性时大小写敏感,大小和小写字母必须完全匹配。

2:返回BSTR形式的属性值?此标识对事件属性无效。(不知道第一句的具体意义,但是设置属性为2可以用来返回原始值)

4:返回完整路径URL地址。只对URL属性有效。(参数为4的情况,我还没有找到使用它的场景。。。)

getAttribute()方法的第二个参数的更多相关文章

  1. 关于replace()方法中第二个参数的转义问题

    如果你想通过Javascript代码在网页中呈现 \ 字符,则在JS代码中你必须输入两个反斜杠 \\,否则会报错.比如: var a = "\"; alert(a); //chro ...

  2. jQuery()方法的第二个参数

    关于jQuery()方法的第二个参数,有下面这几种用法: 1.jQuery(selector, [context]) 这种用法,相当于 $(context).find(selector) 或者 con ...

  3. jQuery()方法的第二个参数详解

    关于jQuery()方法的第二个参数,有下面这几种用法: 1.jQuery(selector, [context]) 这种用法,相当于 $(context).find(selector) 或者 con ...

  4. JavaScript中replace()方法的第二个参数解析

    语法 string.replace(searchvalue,newvalue) 参数值 searchvalue 必须.规定子字符串或要替换的模式的 RegExp 对象.请注意,如果该值是一个字符串,则 ...

  5. 字符串正则替换replace第二个参数是函数的问题

    按照JS高程的说法,如下 replace()方法的第二个参数也可以是一个函数.在只有一个匹配项(即与模式匹配的字符串)的情况下,会向这个函数传递3个参数:模式的匹配项.模式匹配项在字符串中的位置和原始 ...

  6. 字符串正则替换replace第二个参数是函数

    zepto中 //将字符串转成驼峰式的格式 camelize = function (str) { return str.replace(/-+(.)?/g, function (match, chr ...

  7. setAttribute()方法和 getAttribute() 方法

    一.setAttribute() 方法 setAttribute() 方法为一个或一组元素添加指定的属性,并且为其赋指定的值.(主要针对自定义属性) 如果这个属性已经存在,仅仅设置或是修改属性值. 浏 ...

  8. axios中then不用第二个参数,最好用catch

    一般来说,不要在then方法里面定义 Reject 状态的回调函数(即then的第二个参数),总是使用catch方法. // bad promise .then(function(data) { // ...

  9. 关于字符串replace方法第二个参数探究

    网上有关replace的文章很多了,这里主要聊聊它的第二个参数.阅读本文需要对replace方法有一定了解.W3school=>replace 我们要把一段字符串中的某些指定字符替换掉,第一时间 ...

随机推荐

  1. redis中键值对中值的各种类型

    1 value的最基本的数据类型是String 2 如果value是一张图片 先对图片进行base64编码成一个字符串,然后再保存到redis中,用的时候进行base64解码即可. 这是base64的 ...

  2. Java客户端:调用EyeKey HTTP接口进行人脸对比

    package com.example.buyishi; import java.io.BufferedReader; import java.io.IOException; import java. ...

  3. python 2: 解决python中的plot函数的图例legend不能显示中文问题

     问题: 图像标题.横纵坐标轴的标签都能显示中文名字,但是图例就是不能显示中文,怎么解决呢?  解决: plt.figure() plt.title(u'训练性能', fontproperties=f ...

  4. Struts%$#区别

    1.#符号的用途一般有三种.1)访问非根对象属性,例如示例中的#session.msg表达式,由于Struts 2中值栈被视为根对象,所以访问其他非根对象时,需要加#前缀.实际上,#相当于Action ...

  5. About "self"

    Class method can't refer derectly to instance variables. Within the body of  a class method, self re ...

  6. input框只允许输入正整数、正数(包含小数)的解决方法 vue.js实现

    我来打自己脸了!!!!...刚刚发现在中文输入法下是无效的,有人能解决这个问题么 如果要求input只能输入数字怎么做? 设置type="number" ? 那我如果想限制长度,此 ...

  7. Web.xml配置----字符过滤器

    添加EncodingFilter类实现Filter接口 import javax.servlet.*;import javax.servlet.http.HttpServletRequest;impo ...

  8. hdu 1043 Eight(双向bfs)

    题意:经典八数码问题 思路:双向bfs ps:还有a*算法(还不会)等解法. 代码: #include<iostream> #include<stdio.h> #include ...

  9. hdu 4463 Outlets(最小生成树)

    题意:n个点修路,要求总长度最小,但是有两个点p.q必须相连 思路:完全图,prim算法的效率取决于节点数,适用于稠密图.用prim求解. p.q间距离设为0即可,最后输出时加上p.q间的距离 pri ...

  10. android按压背景

    android:background="?android:actionBarItemBackground"