• Java基础—Document类型的变化


    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);

    这行代码会创建一个没有命名空间的新文档,文档元素为,而且没有指定文档类型。要想创建一个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文档。不过,新文档当前只有文档元素,剩下的所有元素都需要继续添加。

    “DOM2级HTML”模块也为document.implementation新增了一个方法,名叫createHTMLDocument()。这个方法的用途是创建一个完整的HTML文档,包括、、和<body>元素。这个方法只接受一个参数,即新创建文档的标题(放在<title>元素中的字符串),返回新的HTML文档,如下所示:</p> <p>var htmldoc = document.implementation.createHTMLDocument("New Doc");<br> alert(htmldoc.title);            //"New Doc"<br> alert(typeof htmldoc.body);      //"object"</p> <p>CreateHTMLDocumentExample.htm</p> <p>通过调用createHTMLDocument()创建的这个文档,是HTMLDocument类型的实例,因而具有该类型的所有属性和方法,包括title和body属性。只有Opera和Safari支持这个方法。</p> <p><a class="link-info has-card" href="https://www.bilibili.com/video/BV1XG411w7Qu/?spm_id_from=333.999.0.0&vd_source=a7816e3b2a3a67ac39dc87f6bf92421c" rel="nofollow" title="https://www.bilibili.com/video/BV1XG411w7Qu/?spm_id_from=333.999.0.0&vd_source=a7816e3b2a3a67ac39dc87f6bf92421c"><span class="link-card-box"><span class="link-title">https://www.bilibili.com/video/BV1XG411w7Qu/?spm_id_from=333.999.0.0&vd_source=a7816e3b2a3a67ac39dc87f6bf92421c</span><span class="link-link"><img class="link-link-icon" src="https://1000bd.com/contentImg/2022/06/15/100806196.png" alt="icon-default.png?t=M85B">https://www.bilibili.com/video/BV1XG411w7Qu/?spm_id_from=333.999.0.0&vd_source=a7816e3b2a3a67ac39dc87f6bf92421c</span></span></a><br>  </p> </div> </div> </li> <li class="list-group-item ul-li"> <b>相关阅读:</b><br> <nobr> <a href="/Article/Index/1305660">Typecho博客搭建+cpolar内网穿透实现公网访问内网站点</a> <br /> <a href="/Article/Index/1161194">公司信息系统架构建设规划</a> <br /> <a href="/Article/Index/1448014">【C#学习】button:只显示图片</a> <br /> <a href="/Article/Index/1167627">QGIS下载在线地图(Google 卫星、esri 卫星)</a> <br /> <a href="/Article/Index/1238619">《最新出炉》系列入门篇-Python+Playwright自动化测试-8-上下文(Context)</a> <br /> <a href="/Article/Index/613032">路径查找算法应用之A*算法</a> <br /> <a href="/Article/Index/1402537">第一章 | 计算机网络原理 谢希仁(第八版)_ 习题答案</a> <br /> <a href="/Article/Index/733897">kubernetes之Deployment</a> <br /> <a href="/Article/Index/1303234">PinnedSectionItemDecoration - 一个强大的粘性标签库</a> <br /> <a href="/Article/Index/1338479">安装软件显示“为了对电脑进行保护,已阻止此应用”——已解决</a> <br /> </nobr> </li> <li class="list-group-item from-a mb-2"> 原文地址:https://blog.csdn.net/m0_72882572/article/details/127850167 </li> </ul> </div> <div class="col-lg-4 col-sm-12"> <ul class="list-group" style="word-break:break-all;"> <li class="list-group-item ul-li-bg" aria-current="true"> 最新文章 </li> <li class="list-group-item ul-li"> <nobr> <a href="/Article/Index/2039405">沪漂五周年了:我越来越迷茫了</a> <br /> <a href="/Article/Index/2039406">Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文</a> <br /> <a href="/Article/Index/2039407">MySQL-Seconds_behind_master的精度误差</a> <br /> <a href="/Article/Index/2039408">[MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间</a> <br /> <a href="/Article/Index/2039409">AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊</a> <br /> <a href="/Article/Index/2039410">Agent OS :五种驯服不确定性的范式</a> <br /> <a href="/Article/Index/2039411">PortSwigger SQL注入LAB11</a> <br /> <a href="/Article/Index/2039412">数据库即时编译JIT</a> <br /> <a href="/Article/Index/2039413">[Begin]AI Learn Data Day 0</a> <br /> <a href="/Article/Index/2039414">深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU</a> <br /> </nobr> </li> </ul> <ul class="list-group pt-2" style="word-break:break-all;"> <li class="list-group-item ul-li-bg" aria-current="true"> 热门文章 </li> <li class="list-group-item ul-li"> <nobr> <a href="/Article/Index/888177">十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!</a> <br /> <a href="/Article/Index/797680">奉劝各位学弟学妹们,该打造你的技术影响力了!</a> <br /> <a href="/Article/Index/888183">五年了,我在 CSDN 的两个一百万。</a> <br /> <a href="/Article/Index/888179">Java俄罗斯方块,老程序员花了一个周末,连接中学年代!</a> <br /> <a href="/Article/Index/797730">面试官都震惊,你这网络基础可以啊!</a> <br /> <a href="/Article/Index/797725">你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法</a> <br /> <a href="/Article/Index/797702">心情不好的时候,用 Python 画棵樱花树送给自己吧</a> <br /> <a href="/Article/Index/797709">通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!</a> <br /> <a href="/Article/Index/797716">13 万字 C 语言从入门到精通保姆级教程2021 年版</a> <br /> <a href="/Article/Index/888192">10行代码集2000张美女图,Python爬虫120例,再上征途</a> <br /> </nobr> </li> </ul> </div> </div> </div> <!-- 主体 --> <!--body结束--> <!--这里是footer模板--> <!--footer--> <nav class="navbar navbar-inverse navbar-fixed-bottom"> <div class="container"> <div class="row"> <div class="col-md-12 text-center"> <div style="padding:0px 5px;"> <a href="/tools">小工具</a> <a href="https://games.1000bd.com">小游戏</a> </div> <div class="text-muted center foot-height"> Copyright © 2022 侵权请联系<a href="mailto:2656653265@qq.com">2656653265@qq.com</a>    <a href="https://beian.miit.gov.cn/" target="_blank">京ICP备2022015340号-1</a> </div> <div style=" padding:5px 0;"> <a target="_blank" href="http://www.beian.gov.cn/portal/registerSystemInfo?recordcode=11010502049817" style="display:inline-block;text-decoration:none;height:20px;line-height:20px;"> <img src="" style="float:left;" /><p style="float:left;height:20px;line-height:20px;margin: 0px 0px 0px 5px; color:#939393;">京公网安备 11010502049817号</p></a> </div> </div> </div> </div> </nav> <!--footer--> <!--footer模板结束--> <script src="/js/plugins/jquery/jquery.js"></script> <script src="/js/bootstrap.min.js"></script> <!--这里是scripts模板--> <!--scripts模板结束--> </body> </html>