Java基础—Document类型的变化

news2025/7/18 8:17:14

Document类型的变化

Document类型的变化中唯一与命名空间无关的方法是importNode()。这个方法的用途是从一个文档中取得一个节点,然后将其导入到另一个文档,使其成为这个文档结构的一部分。需要注意的是,每个节点都有一个ownerDocument属性,表示所属的文档。

如果调用appendChild()时传入的节点属于不同的文档(ownerDocument属性的值不一样),则会导致错误。但在调用importNode()时传入不同文档的节点则会返回一个新节点,这个新节点的所有权归当前文档所有。

说起来,importNode()方法与Element的cloneNode()方法非常相似,它接受两个参数:要复制的节点和一个表示是否复制子节点的布尔值。返回的结果是原来节点的副本,但能够在当前文档中使用。来看下面的例子:

var newNode = document.importNode(oldNode, true); //导入节点及其所有子节点
document.body.appendChild(newNode);

这个方法在HTML文档中并不常用,在XML文档中用得比较多。

“DOM2级视图”模块添加了一个名为defaultView的属性,其中保存着一个指针,指向拥有给定文档的窗口(或框架)。除此之外,“视图”规范没有提供什么时候其他视图可用的信息,因而这是唯一一个新增的属性。除IE之外的所有浏览器都支持defaultView属性。在IE中有一个等价的属性名叫parentWindow(Opera也支持这个属性)。因此,要确定文档的归属窗口,可以使用以下代码。

var parentWindow = document.defaultView || document.parentWindow;

除了上述一个方法和一个属性之外,“DOM2级核心”还为document.implementation对象规定了两个新方法:createDocumentType()和createDocument()。前者用于创建一个新的DocumentType节点,接受3个参数:文档类型名称、publicId、systemId。例如,下列代码会创建一个新HTML 4.01 Strict文档类型。

var doctype = document.implementation.createDocumentType("html",
                  "-//W3C//DTD HTML 4.01//EN",
                  "http://www.w3.org/TR/html4/strict.dtd");

由于既有文档的文档类型不能改变,因此createDocumentType()只在创建新文档时有用;创建新文档时需要用到createDocument()方法。这个方法接受3个参数:针对文档中元素的namespaceURI、文档元素的标签名、新文档的文档类型。下面这行代码将会创建一个空的新XML文档。

var doc = document.implementation.createDocument("", "root", null);

这行代码会创建一个没有命名空间的新文档,文档元素为<root>,而且没有指定文档类型。要想创建一个XHTML文档,可以使用以下代码。

var doctype = document.implementation.createDocumentType("html",
                  " -//W3C//DTD XHTML 1.0 Strict//EN",
                  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd");

var doc = document.implementation.createDocument("http://www.w3.org/1999/xhtml", 
                 "html", doctype);

这样,就创建了一个带有适当命名空间和文档类型的新XHTML文档。不过,新文档当前只有文档元素<html>,剩下的所有元素都需要继续添加。

“DOM2级HTML”模块也为document.implementation新增了一个方法,名叫createHTMLDocument()。这个方法的用途是创建一个完整的HTML文档,包括<html>、<head>、<title>和<body>元素。这个方法只接受一个参数,即新创建文档的标题(放在<title>元素中的字符串),返回新的HTML文档,如下所示:

var htmldoc = document.implementation.createHTMLDocument("New Doc");
alert(htmldoc.title);            //"New Doc"
alert(typeof htmldoc.body);      //"object"

CreateHTMLDocumentExample.htm

通过调用createHTMLDocument()创建的这个文档,是HTMLDocument类型的实例,因而具有该类型的所有属性和方法,包括title和body属性。只有Opera和Safari支持这个方法。
https://www.bilibili.com/video/BV1qL411u7eEhttps://www.bilibili.com/video/BV1qL411u7eE

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/8429.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

G1D13-Apt论文阅读fraudgitKGbookrce33-36php环境搭建

一、APT论文 今天终于把6个模型论文和一篇综述读完了&#xff01;&#xff01;&#xff01; 今天主要读了一篇论文写了个总表。发现之前读的论文都忘了&#xff0c;所以 明天要复习一下模型&#xff0c;记录在文档中&#xff0c;并完善模型对比的总表&#xff0c;并且把代码下…

[附源码]java毕业设计基于web的建筑合同管理系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

嵌入式FreeRTOS学习九,任务链表的构成,TICK时间中断和任务状态切换调度

一. tskTaskControlBlock 函数结构体 在tskTaskControlBlock 任务控制块结构体中&#xff0c;其中有任务状态链表和事件链表两个链表成员&#xff0c;首先介绍任务状态链表这个结构&#xff0c;这个链表通常用于管理不同状态的任务&#xff1b;通常&#xff0c;操作系统任务有…

CPU、内存、磁盘性能监控

CPU监控 网络由设备、服务器、路由器、交换机和其他网络组件组成。CPU 是网络中所有硬件设备的组成部分。它负责设备的稳定性和性能。企业严重依赖网络&#xff0c;企业硬件的处理能力决定了网络的容量。随着 CPU 功能和硬件的快速发展&#xff0c;组织必须规划其容量并监控其…

成功上岸,刚转行自学Python的小姑娘,每个月入1W+......

我是一名2020年毕业的本科生&#xff0c;大学学的专业是机械设计制造及其自动化。 在大学期间&#xff0c;觉得机械专业实在枯燥无味&#xff0c;没有一点点成就感&#xff0c;每天就是画图纸&#xff0c;测量零件&#xff0c;计算数据&#xff0c;一切都是纸上谈兵。但凡有因…

甲氧基PEG多巴胺DPA-mPEG,Dopamine-mPEG,PEG化的多巴胺具有良好的水溶性

英文名称&#xff1a;mPEG-DPA mPEG-Dopamine 中文名称&#xff1a;甲氧基-聚乙二醇-多巴胺 分子量&#xff1a;1k&#xff0c;2k&#xff0c;3.4k&#xff0c;5k&#xff0c;10k 产地&#xff1a;广州 品牌&#xff1a;为华生物 存储条件&#xff1a;≤-4℃低温干燥保存…

Netty-实验

Netty应用实例-群聊系统 实例要求&#xff1a; &#xff08;1&#xff09;编写一个Netty群聊系统&#xff0c;实现服务端和客户端之间的数据简单通讯&#xff08;非阻塞&#xff09; &#xff08;2&#xff09;实现多人群聊 &#xff08;3&#xff09;服务器端&#xff1a;可…

论文阅读笔记 | 三维目标检测——PointRCNN

如有错误&#xff0c;恳请指出。 文章目录1. 背景2. 网络结构2.1 Proposal Generation2.2 Proposal Refinement3. 实验部分3.1 kitti上的测评3.2 消融实验paper&#xff1a;《PointRCNN: 3D Object Proposal Generation and Detection from Point Cloud》文章比较复杂&#xff…

一文详解Redis企业版软件!

一、Redis企业版软件概述 Redis企业版软件&#xff08;Redis Enterprise&#xff09;是企业级的数据库软件&#xff0c;也是一款实时数据平台&#xff0c;为全球超过8500家知名企业提供实时数据服务。具有线性可扩展性、高可用性、持久性、备份和恢复、地理分布、分层内存访问…

WhatsApp群发系统-SendWS拓客系统功能后台介绍(五):WhatsApp筛号群发,群发超链

WhatsApp群发系统 基于WhatsApp进行群发功能&#xff0c;将品牌和产品推送给全世界各地的人们或者选择筛选好的用户&#xff0c;进行针对性的群发&#xff0c;提升了品牌和产品的影响力&#xff0c;让更多人了解认识品牌&#xff0c;帮助客户低成本实现WhatsApp营销精准拓客。…

windows和linux可以共用的端口连通性是否丢包测试工具paping

通常我们在系统无论是在windows还是linux&#xff0c;都会使用telnet命令来测试端口的连通性&#xff0c;但此命令只能测试是否通&#xff0c;无法测试是否有丢包或者是否有中断。paping这个工具就应用而生&#xff0c;它可以在多系统环境下进行像ping一样测试。 一、下载&…

【vscode】远程容器内开发python

一、环境 本人的远程开发环境&#xff1a; docker容器miniconda 常用的IDE&#xff1a; pyCharm专业版vsCodeRemote Development插件Python插件 由于pyCharm专业版要么花钱要么破解&#xff0c;我选择了vscode插件的方式&#xff0c;插件都是microsoft出品。 二、使用 服务…

记一道前端高难度面试题

目录 提问&#xff1a;如何让下面的这行代码成立 1.错误原因 2.思路 3.解题 4.小结 提问&#xff1a;如何让下面的这行代码成立 var [a,b] {a:1,b:2} 直接运行会报错&#xff0c;报错信息如下&#xff1a; Uncaught TypeError: {(intermediate value)(intermediate valu…

手柄零件的工艺设计

手柄零件的工艺设计 目录 一、零件的工艺分析及生产类型的确定 1.零件的作用-------------------------------------------------------------------------- 3 2.热处理-------------------------------------------------------------------------------- 3 3.零件的生产类型-…

架构师书籍推荐

讲实话&#xff0c;要看书只能看看架构师思维相关的数据&#xff0c;开拓一下思路就行&#xff0c;看看别人的看法和观念。 架构师需要积累的技术不要从书上来&#xff0c;去官网看他的说明书&#xff0c;一切纯讲技术类的书籍都有滞后性。 正在用的技术要时常关注一下他官网…

数据结构-图的基本概念

目录 完全图无向图有向图路径长度回路或环⭐⭐无向图-->连通图和连通分量⭐⭐有向图-强连通图和强连通分量完全图 无向图 无向图中每两个顶点之间都存在着一条边。 称为完全图 无向完全图包含n(n-1)/2条边。 有向图 有向图每两个顶点之间都存在着方向相反的两条边。 称…

Nature 、cell 双开花-抗氧化剂与氧化应激

癌细胞经常通过癌症转移调控自身的新陈代谢&#xff0c;进而来有效地支持细胞增殖和存活。因此&#xff0c;因恶性肿瘤转移造成的死亡占癌症整体发病的 95%。2019 年 6 月 27 日&#xff0c;国际 TOP 杂志 Nature 在线发表了中科院上海生化与细胞研究所杨巍维课题组与中科院大连…

el-table中显示echarts的趋势折线图(燃尽图)

显示效果&#xff1a;右边的趋势图其实是查询当前行的30天数据量 背景&#xff1a;为了模仿禅道上的燃尽图&#xff0c;但是查看其源码&#xff0c;发现是用php写的&#xff0c;我们想用vue实现 实现步骤&#xff1a;1.先使用el-table画出表格来 注意&#xff1a;此时数据是…

ctfshow 萌新赛 给她

初识&#xff1a; 一开始看到这个题目以为是sql注入&#xff0c;尝试了各种sql注入转义次都注入不了 .git泄露&#xff1a;最后还是看了一下大佬的解题&#xff0c;发现方向就错了&#xff0c;“给她”——“git”&#xff0c;这题的入口是.git泄露。 我是纯小白&#xff0c;…

如何在React项目中使用TypeScript

本文主要记录我如何在React项目中优雅的使用TypeScript&#xff0c;来提高开发效率及项目的健壮性。 项目目录及ts文件划分 由于我在实际项目中大部分是使用umi来进行开发项目&#xff0c;所以使用umi生成的目录来做案例。 . ├── README.md ├── global.d.ts ├── mo…