• 判断元素阶段类型


    兼容IE

    1.判断元素节点

    <body>
      <div id="test">aaa</div>
      <!--这是一个注释节点-->
      <script> var testDiv = document.createElement('div'); var isElement = function (obj) { if (obj && obj.nodeType === 1) {//先过滤最简单的 if( window.Node && (obj instanceof Node )){ //如果是IE9,则判定其是否Node的实例 return true; //由于obj可能是来自另一个文档对象,因此不能轻易返回false } try {//最后以这种效率非常差但肯定可行的方案进行判定 testDiv.appendChild(obj); testDiv.removeChild(obj); } catch (e) { return false; } return true; } return false; } var a = { nodeType: 1 } console.log(isElement(document.getElementById("test"))); //true console.log(isElement(document.getElementById("test").nextSibling));//false console.log(isElement(a));//false </script>
    </body>

    2.判断XML文档类型

    <body>
        <script>
            var isXML = function(doc) {
                return doc.createElement("p").nodeName !== doc.createElement("P").nodeName;
            }
    console.log(isXML(document)) //false </script> </body>

    3.判断HTML文档类型

    <body>
        <script>
            var isHTML = function(doc) {
                return doc.createElement("p").nodeName == doc.createElement("P").nodeName;
            }
            console.log(isHTML(document))  //true
        </script>
    </body>

    4.判断两种关系的元素节点

    <body>
        <div id="p-node">
            <div id="c-node">子节点内容</div>
        </div>
        <script>
            function fixContains(a, b) {
                try {
                    while ((b = b.parentNode)){
                        if (b === a){
                            return true;
                        }
                    }
                    return false;
                } catch (e) {
                    return false;
                }
            }
            var pNode = document.getElementById("p-node");
            var cNode = document.getElementById("c-node").childNodes[0];
            alert(fixContains(pNode, cNode)); //true        
    //alert(fixContains(document, cNode)); //true </script> </body>
  • 相关阅读:
    代码审计中的XSS反射型漏洞
    PHP 代码审计代码执行注入
    4.代码审计之代码注入
    3.代码审计之 命令注入
    2.代码审计之超全局变量
    spring, spring mvc, mybatis整合文件配置详解
    StringUtils方法
    主键与外键
    MySQL面试题
    spring面试题
  • 原文地址:https://www.cnblogs.com/yulingjia/p/6515089.html
Copyright © 2020-2023  润新知