• anu


    import { oneObject, recyclables, typeNumber } from "./util";
    
    //用于后端的元素节点
    export function DOMElement(type) {
        this.nodeName = type;
        this.style = {};
        this.children = [];
    }
    
    //如果仅仅通过引用 SVG 的命名空间,就能够把 SVG 元素之间添加到 HTML 代码中,那就太棒了 export
    var NAMESPACE = { svg: "http://www.w3.org/2000/svg", xmlns: "http://www.w3.org/2000/xmlns/", xlink: "http://www.w3.org/1999/xlink", math: "http://www.w3.org/1998/Math/MathML" }; var fn = (DOMElement.prototype = { contains: Boolean }); String( "replaceChild,appendChild,removeAttributeNS,setAttributeNS,removeAttribute,setAttribute" + ",getAttribute,insertBefore,removeChild,addEventListener,removeEventListener,attachEvent" + ",detachEvent" ).replace(/w+/g, function (name) { fn[name] = function () { console.log("fire " + name); // eslint-disable-line }; }); //用于后端的document export var fakeDoc = new DOMElement(); fakeDoc.createElement = fakeDoc.createElementNS = fakeDoc.createDocumentFragment = function ( type ) { return new DOMElement(type); }; fakeDoc.createTextNode = fakeDoc.createComment = Boolean; fakeDoc.documentElement = new DOMElement("html"); fakeDoc.nodeName = "#document"; fakeDoc.textContent = "";
    try { var w = window; var b = !!w.alert; } catch (e) { b = false; w = { document: fakeDoc }; } export var inBrowser = b; export var win = w; export var document = w.document || fakeDoc; var isStandard = "textContent" in document; var fragment = document.createDocumentFragment();
    function emptyElement(node) { var child;
    while ((child = node.firstChild)) { if (child.nodeType === 1) { emptyElement(child); } node.removeChild(child); } } export function removeDOMElement(node) { if (node.nodeType === 1) { if (isStandard) { node.textContent = ""; } else { emptyElement(node); } node.__events = null; } else if (node.nodeType === 3) { //只回收文本节点 recyclables["#text"].push(node); }

       //经典 fragment.appendChild(node); fragment.removeChild(node); }
    var versions = { 88: 7, //IE7-8 objectobject 80: 6, //IE6 objectundefined "00": NaN, // other modern browsers "08": NaN }; /* istanbul ignore next */

    //判断是ie 6,7,8.9,10,11 export var msie = document.documentMode || versions[typeNumber(document.all) + "" + typeNumber(XMLHttpRequest)];
    //ie9 才是现代浏览器 export
    var modern = /NaN|undefined/.test(msie) || msie > 8;
    export
    function createDOMElement(vnode) { var type = vnode.type; if (type === "#text") { //只重复利用文本节点 var node = recyclables[type].pop(); if (node) { node.nodeValue = vnode.text; return node; } return document.createTextNode(vnode.text); } if (type === "#comment") { return document.createComment(vnode.text); } try { if (vnode.ns) { return document.createElementNS(vnode.ns, type); } //eslint-disable-next-line } catch (e) { } return document.createElement(type); } // https://developer.mozilla.org/en-US/docs/Web/MathML/Element/math var rmathTags = /^m/; var namespaceMap = oneObject("svg", NAMESPACE.svg);
    namespaceMap.semantics
    = NAMESPACE.math; // http://demo.yanue.net/HTML5element/

    "meter,menu,map,meta,mark".replace(/w+/g, function (tag) { namespaceMap[tag] = null; });
    export
    function getNs(type) { if (namespaceMap[type] !== void 666) { return namespaceMap[type]; } else { return namespaceMap[type] = rmathTags.test(type) ? NAMESPACE.math : null; } }
  • 相关阅读:
    Java 数据类型转换
    Perl 日期时间函数(date time)
    find a filename from a filehandle in Perl
    Perl文件读写
    R语言算术运算和逻辑运算
    bash/shell 数学计算
    grep/awk/sed 或者 并且 否定
    关于打印 毕业设计资料
    python 捕获 shell/bash 脚本的输出结果
    推荐几个高质量的图片素材网站
  • 原文地址:https://www.cnblogs.com/dhsz/p/7561153.html
Copyright © 2020-2023  润新知