zoukankan      html  css  js  c++  java
  • jQuery.support 的实现方式

    jQuery.support 用于检查浏览器对各项特性的支持。检查项多达 27 个。
    首先,让我们用一段代码测试一下 support 中包含的检查项:

    <script src='jquery.js'></script>
    <script>
    support = $.support;
    for (key in support) {
        document.write('support.' + key + ' = ' + support[key] + '<br />');
    }
    </script>
    IE 下的输出结果为:

    support.leadingWhitespace = false
    support.tbody = false
    support.htmlSerialize = false
    support.style = false
    support.hrefNormalized = false
    support.opacity = false
    support.cssFloat = false
    support.checkOn = true
    support.optSelected = false
    support.getSetAttribute = false
    support.submitBubbles = false
    support.changeBubbles = false
    support.focusinBubbles = true
    support.deleteExpando = false
    support.noCloneEvent = false
    support.inlineBlockNeedsLayout = false
    support.shrinkWrapBlocks = true
    support.reliableMarginRight = true
    support.noCloneChecked = false
    support.optDisabled = true
    support.radioValue = false
    support.checkClone = undefined
    support.appendChecked = false欠款
    support.boxModel = false
    support.reliableHiddenOffsets = false
    support.ajax = true
    support.cors = false
    FireFox 中的显示结果为:

    support.leadingWhitespace = true
    support.tbody = true
    support.htmlSerialize = true
    support.style = true
    support.hrefNormalized = true
    support.opacity = true
    support.cssFloat = true
    support.checkOn = true
    support.optSelected = true
    support.getSetAttribute = true
    support.submitBubbles = true
    support.changeBubbles = true
    support.focusinBubbles = false
    support.deleteExpando = true
    support.noCloneEvent = true
    support.inlineBlockNeedsLayout = false
    support.shrinkWrapBlocks = false
    support.reliableMarginRight = true
    support.noCloneChecked = true
    support.optDisabled = true
    support.radioValue = true
    support.checkClone = undefined
    support.appendChecked = true
    support.boxModel = true
    support.reliableHiddenOffsets = true
    support.ajax = true
    support.cors = true
    要注意的是,源代码中 checkClone 的检查是有问题的。这将在后面提到。
    接下来,我们就对这些检查项进行逐一的分析。

    leadingWhitespace

    检查用 innerHTML 赋值时,是否会保留前面的空白符。
    IE中为 false , Firefox 中为 true 。
    实现方式如下:

    $ = function(){    女装品牌大全
        var div = document.createElement( "div" );
        div.innerHTML = "   <link/><table></table><a href='/a' style='top:1px;float:left;opacity:.55;'>a</a><input type='checkbox'/>";
       
        var support = {
            leadingWhitespace: (div.firstChild.nodeType === 3)    
        }
       
        return { support : support }
    }();

    这段代码中,先创建了一个 div ,之后就用 innerHTML 为 div 赋值,
    然后检查 div 的第一个子元素的 nodeType 是否为 3 (表示文本),
    是的话则空白字符被保留,否则未被保留。

  • 相关阅读:
    P2176 [USACO14FEB]路障Roadblock
    【最短路】Dijkstra+ 链式前向星+ 堆优化(优先队列)
    图论其一:图的存储
    【计算几何】二维凸包——Graham's Scan法
    P2742 【模板】二维凸包 / [USACO5.1]圈奶牛Fencing the Cows
    P2639 [USACO09OCT]Bessie的体重问题 【背包问题】
    如何评价代码质量的高低
    乔新亮-衡量企业 IT 团队价值的唯一指标是什么
    我总结了平台的5道坎
    hadoop namenode的工作机制
  • 原文地址:https://www.cnblogs.com/sky7034/p/2144058.html
Copyright © 2011-2022 走看看