• 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支持这个方法。<br><a class="link-info has-card" href="https://www.bilibili.com/video/BV1qL411u7eE" rel="nofollow" title="https://www.bilibili.com/video/BV1qL411u7eE"><span class="link-card-box"><span class="link-title">https://www.bilibili.com/video/BV1qL411u7eE</span><span class="link-link"><img alt="" class="link-link-icon" src="https://1000bd.com/contentImg/2022/06/15/100806196.png">https://www.bilibili.com/video/BV1qL411u7eE</span></span></a></p> </div> </div> </li> <li class="list-group-item ul-li"> <b>相关阅读:</b><br> <nobr> <a href="/Article/Index/642300">梯度下降法求解BP神经网络的简单Demo</a> <br /> <a href="/Article/Index/1264058">ThreeJS进阶之动画系统(Animation system)</a> <br /> <a href="/Article/Index/801614">LeetCode第304场周赛</a> <br /> <a href="/Article/Index/862601">Shiro认证--盐加密(SSM)</a> <br /> <a href="/Article/Index/1292483">预训练相关知识</a> <br /> <a href="/Article/Index/1063645">有哨兵位双向循环链表</a> <br /> <a href="/Article/Index/1861778">查看TCP/UDP网络连接通信情况</a> <br /> <a href="/Article/Index/1137637">电脑c盘分区太小如何可以扩大,电脑c盘不够用了,如何给电脑分区</a> <br /> <a href="/Article/Index/744901">Vuex的5个核心属性是什么?</a> <br /> <a href="/Article/Index/1115009">ES-分词器</a> <br /> </nobr> </li> <li class="list-group-item from-a mb-2"> 原文地址:https://blog.csdn.net/Abcd6578787_/article/details/127864724 </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/1484446">攻防演习之三天拿下官网站群</a> <br /> <a href="/Article/Index/1515268">数据安全治理学习——前期安全规划和安全管理体系建设</a> <br /> <a href="/Article/Index/1759065">企业安全 | 企业内一次钓鱼演练准备过程</a> <br /> <a href="/Article/Index/1485036">内网渗透测试 | Kerberos协议及其部分攻击手法</a> <br /> <a href="/Article/Index/1877332">0day的产生 | 不懂代码的"代码审计"</a> <br /> <a href="/Article/Index/1887576">安装scrcpy-client模块av模块异常,环境问题解决方案</a> <br /> <a href="/Article/Index/1887578">leetcode hot100【LeetCode 279. 完全平方数】java实现</a> <br /> <a href="/Article/Index/1887512">OpenWrt下安装Mosquitto</a> <br /> <a href="/Article/Index/1887520">AnatoMask论文汇总</a> <br /> <a href="/Article/Index/1887496">【AI日记】24.11.01 LangChain、openai api和github copilot</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"> <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="width:300px;margin:0 auto; padding:0px 5px;"> <a href="/regex.html">正则表达式工具</a> <a href="/cron.html">cron表达式工具</a> <a href="/pwdcreator.html">密码生成工具</a> </div> <div style="width:300px;margin:0 auto; 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>