学生教材网 >程序设计 > 开源项目 > 程序开发 > 浏览文章

JavaScript DOM2和DOM3——“DOM的变化”的注意要点 - 前端学习笔记

来源:网络编辑:佚名时间:2015-12-22人气:

揩油事件120张照,虐待美女小游戏,娘亲十一岁

DOM2和DOM3级分为许多模块,分别描述了DOM的某个非常具体的子集。这些模块主要有核心(Core)、视图(Views)、事件(Events)、样式(Style)、遍历和范围(Traversal and Range)以及HTML。

另外,DOM2和3级的目的在于扩展DOM API,由于DOM2级视图和DOM2级HTML两个模块很小,因此我们将他们与“DOM2级核心”放在一起。

针对XML命名空间的变化

有了XML命名空间,不同XML文档的元素就可以混合在一起;从技术上说,HTML不支持XML混合命名空间,但XHTML支持XML命名空间。

命名空间要使用xmlns特性来指定,都应该包含在html元素中如:

<html xmlns="http://www.w3.org/1999.xhtml">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    hello world
</body>
</html>

要想明确地为XML命名空间创建前缀,可以使用xmlns后跟冒号(xmlns:),再跟前缀如:

<xhtml:html xmlns:xhtml="http://www.w3.org/1999.xhtml">
<xhtml:head>
    <xhtml:meta charset="UTF-8">
    <xhtml:title>Document</xhtml:title>
</xhtml:head>
<xhtml:body>
    hello world
</xhtml:body>
</xhtml:html>

为了避免不同语言间的冲突,也许要使用命名空间来限定特性,如:

<xhtml:html xmlns:xhtml="http://www.w3.org/1999.xhtml">
<xhtml:head>
    <xhtml:meta charset="UTF-8">
    <xhtml:title>Document</xhtml:title>
</xhtml:head>
<xhtml:body xhtml:class="home">
    hello world
</xhtml:body>
</xhtml:html>

如混合了XHTML和SVG语言的文档:

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <svg xmlns="http://www.w3.org/2000/svg" version="1.1" ......>
        <rect x="0" y="0" ...... />
    </svg>
</body>
</html>

多语言的文档中,调用方法操作文档节点的情况下,难免会存在元素的命名空间从属的问题。“DOM2级核心”通过为大多数DOM1级方法提供特定于命名空间的版本解决了这个问题。

Node类型的变化

在DOM2级中,Node类型包含下列特定于命名空间的属性:

  • localName:不带命名空间前缀的节点名称;

  • namespaceURI:命名空间URI或者null;

  • prefix:命名空间前缀或null;

当节点使用了命名空间前缀时,其nodeName为prefix+“:”+localName

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <s:svg xmlns:s="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 100 100" style="width:100%; height:100%">
        <s:rect x="0" y="0" width="100" height="100" style="fill:red"/>
    </s:svg>
</body>
</html>

对于html元素来说,它的localName和tagName是“html”,namespaceURI是“http://www.w3.org/1999/xhtml”,而prefix是null。

对于svg元素来说,它的localName是“svg”,tagName是“s:svg”,namespaceURI是“http://www.w3.org/2000/svg”,而prefix是“s”。

DOM3级在此基础上更进一步,又引入了下列与命名空间有关的方法:

  • isDefaultNamespace(namespaceURI):在指定的namespaceURI是当前节点的默认命名空间的情况下返回true;

  • lookupNamespaceURI(prefix):返回给定prefix的命名空间;

  • lookupPrefix(namespaceURI):返回给定namespaceURI的前缀;

Document类型的变化

主要有:

  • createElementNS(namespaceURI,tagName):使用给定的tagName创建一个属于命名空间namespaceURI的新元素;

  • createAttributeNS(namespaceURI,attributeName):使用给定的attributeName创建一个属于命名空间namespaceURI的新特性;

  • getElementsByTagNameNS(namespaceURI,tagName):返回属于命名空间namespaceURI的tagName元素的NodeList。

Element类型的变化

主要有:

微擎中使用微信之门接口,让订阅号也能直接以网…

开发微擎模块的时候常会遇到一个问题:只有服务号才能直接在网页上获取OpenID,如果是订阅号就只能从对话消息中获取OpenID然后传到网页,虽然微擎有个功能叫做“借用oAuth权限”,但是有时候连借都没地方借,怎么办呢?还好这是个互联网时代,有需求,就会有服务。

SpringBoot使用zookeeper作为配置中心 - xixicat

序随着互联网的兴起,提升系统性能的方式,渐渐从垂直伸缩的方式变为水平伸缩。集群中不可避免地会有配置,本地配置就不可取了,一旦有改动就得一台台机器去改动,非常费劲。

热门推荐