`
魏祖清
  • 浏览: 180300 次
  • 性别: Icon_minigender_1
  • 来自: 福建
社区版块
存档分类
最新评论

IE与Firefox处理Attribute的几点差异

    博客分类:
  • js
阅读更多
    前端开发中,经常需要动态的添加、移除或者获取元素的Attribute。也就是说经常会用到setAttribute、removeAttribute和getAttribute。今天要讨论的是开发中遇到的几处IE与Firefox对Attribute操作的差异。

属性名大小写

在Firefox中,属性没有小写的概念,就算属性名全用大写,Firefox也会解析成小写,用Firebug看就能看到。所以下面的代码在Firefox与IE中运行结果会不一样。
<div altStr="sss"></div>
<script type="text/javascript">
var div = document.getElementsByTagName("div")[0];
div.removeAttribute("altstr");
alert(div.getAttribute("altstr"));//IE中返回sss,FF中返回null
</script>

不过在IE中,removeAttribute有第二个参数,设置为true表示不忽略大小写,为false时忽略大小写,默认值是 true;Firefox中因为解析时就不存在大写属性了,所以就没有第二个参数。也就是说IE中 removeAttribute(”test”,false)等同于Firefox中的removeAttribute(”test”),IE中 removeAttribute(”test”,true)在Firefox中无法实现。

Button的value属性

假设有下面一个button,怎么可以得到button的value属性?
<button value="a">b</button>

其实上,在IE下,无论是btn.getAttribute(”value”)、btn.value、btn.innerHTML还是 btn.innerText都得”b”,但是在Firefox下,btn.getAttribute(”value”)、btn.value得到的都是 ”a”,btn.innerHTML得到的是”b”。也就是说我们如果要在button上加自定义属性,不要用”value”做属性名,否则在IE下没办法取到值。

getAttribute返回值类型不同

看一下下面的代码,你认为IE与Firefox分别会返回什么?
<button onclick="alert(0)">b</button>
<script type="text/javascript">
var btn = document.getElementsByTagName("button")[0];
alert(btn.getAttribute("onclick"));
</script>

IE下,getAttribute(”onclick”)返回的是一个function,直接可以调用,Firefox下则返回一个string,直接调用会出错。

题外话

今天翻手册,看到上面对Button标签是这么描述的:

    当 BUTTON 元素在表单中提交的话,Microsoft® Internet Explorer 5 及以后版本将提交 VALUE 标签属性,若存在的话。否则就提交 innerText 属性。在 Internet Explorer 4.0 中,只会提交 innerText 值。

但是我发现我的IE8对于form中的button,无论有没有value属性,都是提交button的innerHTML属性。不知道是什么回事。
分享到:
评论

相关推荐

    JavaScript在IE和Firefox(火狐)的不兼容问题解决

    标题与描述均聚焦于“JavaScript在IE和Firefox(火狐)的不兼容问题解决”,这表明文章旨在探讨并提供解决方案来处理在不同浏览器环境下的JavaScript兼容性问题,尤其是在Internet Explorer(IE)和Mozilla Firefox...

    IE和Firefox中J avaScript兼容

    本文将详细介绍在IE与Firefox浏览器之间实现JavaScript脚本兼容的方法,主要涉及函数、属性、方法等方面的内容。 #### 1. 获取表单元素 - **IE**: 支持`document.formName.item("itemName")`和`document.formName....

    IE与FireFox中的childNodes区别

    在JavaScript中,对DOM元素进行操作和遍历是常见...总之,虽然`childNodes`在IE和Firefox中的行为略有不同,但通过适当的条件判断,我们可以编写出既兼容IE又适用于Firefox的代码,确保在处理DOM遍历时的正确性和效率。

    JS操作XML文件,兼容火狐、IE

    由于浏览器的实现差异,尤其是Firefox和IE之间的兼容性问题,需要特别注意处理方式。以下将详细介绍如何使用JavaScript操作XML文件,并确保在Firefox和IE之间具有良好的兼容性。 1. 创建XMLHttpRequest对象 在...

    IE与FF一些常见的兼容性问题解决

    在处理浏览器兼容性问题时,尤其是在处理事件监听器(如`onmousemove`)时,IE 和 Firefox 在事件对象的获取上存在明显差异。 - **IE**: 使用 `window.event` 获取当前触发事件的对象。 - **Firefox**: 通过传递给...

    .net中attribute实现方法调用拦截(就是aop)

    AOP(面向切面编程)是一种编程范式,它允许程序员将关注点分离,将横切关注点(如日志、事务管理、性能度量等)从核心业务逻辑中解耦出来。在.NET中,我们可以通过Attribute来实现AOP的功能,这就是标题中提到的...

    c#的attribute实例源码

    2. **使用反射获取Attribute信息**:在运行时,我们可以通过反射来访问和处理Attribute。例如,获取`MyProgram`类上的`AuthorAttribute`: ```csharp var type = typeof(MyProgram); var authorAttr = ...

    attributeQuery.rar_AttributeQuery

    "attributeQuery.rar_AttributeQuery" 提供的资源是关于如何利用ArcGIS Engine (AE) 和C#编程语言实现一个特定类型的查询——框选要素并弹出其属性值的查询功能。这个功能对地图数据的分析和应用非常实用,尤其在...

    Property和Attribute的区别

    "Property和Attribute的区别" 在面向对象编程(Object-Oriented Programming)中,Property和Attribute都是常用的概念,但是它们之间存在着本质的区别。Property是指类向外提供的数据区域,是智能的字段,其中有get...

    attribute的作用和具体使用方法

    在Web开发中,属性(Attribute)作为一项基础而重要的功能,被广泛应用于处理用户请求、数据传递以及页面跳转等场景中。本文将深入探讨Attribute的基本概念、作用及其具体使用方法。 #### 一、Attribute的基本概念 ...

    Attribute标记属性_资料收集

    `System.Reflection`命名空间提供了多种方法来获取和处理Attribute。例如,我们可以这样获取`MyClass`上的`AuthorAttribute`: ```csharp var type = typeof(MyClass); var authorAttr = type.GetCustomAttribute()...

    glsl自定义attribute

    在计算机图形学领域,GLSL(OpenGL Shading Language)是一种着色语言,用于编写图形处理单元(GPU)上的着色器。着色器是运行在GPU上的小程序,负责处理像素和顶点的颜色、位置等属性。`attribute`是GLSL中的一个...

    Attribute在NET中的应用

    在.NET框架中,属性(Attribute)是一种元数据,可以附加到程序元素,如类、方法、属性等,为编译器、运行时环境或其他工具提供额外的信息。它们是编程中的一个重要概念,允许开发者向代码中添加非执行性的描述性...

    __attribute__

    ### __attribute__ 在 C 语言中的使用方法 #### 一、引言 在 C 语言中,`__attribute__` 是 GNU 编译器集合 (GCC) 的一个扩展特性,它允许开发人员向函数、变量或类型添加元数据,从而增强编译时的错误检查能力并...

    FileAttribute

    在IT领域,文件属性(File Attribute)是操作系统用于标识和管理文件的重要机制。它提供了关于文件的基本信息,如隐藏、只读、系统、存档等状态。这些属性可以帮助用户和程序更好地控制文件的访问和存储。现在我们来...

    ASP.NET MVC5 新特性:Attribute路由使用详解

    #### 一、Attribute路由简介与启用 在探讨Attribute路由之前,我们先来明确一下它的定义。**Attribute路由**是一种新的路由机制,它允许开发者直接在控制器的方法(即Action)上定义路由规则,这种方式极大地简化了...

    AttributeError: module 'tensorflow.compat.v1' has no attribute '

    AttributeError: module 'tensorflow.compat.v1' has no attribute 'contrib'的问题您具体怎么解决问题具体解决的seq_loss.py文件

    Firefox浏览器xpath插件webdriver_element_locator-1.rev312-fx.xpi

    总结起来,`webdriver_element_locator-1.rev312-fx.xpi`是一个针对Firefox浏览器的XPath插件,它与WebDriver自动化测试框架紧密相关,帮助用户高效地定位和操作网页元素。对于Web开发者和测试工程师来说,这类工具...

    求解报错:AttributeError:module ‘os’ has no attribute ‘exit’

    python3 server.py 127.0.0.1 8888 ...AttributeError: module ‘os’ has no attribute ‘exit’ 部分代码入下: from socket import * import sys,os #实现登录 def do_login(s,user,name,addr): for i in user: i

Global site tag (gtag.js) - Google Analytics