代码之家  ›  专栏  ›  技术社区  ›  Phil

如何删除Ajax控件工具箱选项卡面板控件中自动插入的空间

  •  0
  • Phil  · 技术社区  · 16 年前

    Ajax control toolkit tab panel http://www.asp.net/ajax/ajaxcontroltoolkit/Samples/Tabs/Tabs.aspx 再看看页面上的选项卡面板。在“Signature:”和“Bio:”标签前面有一个空格。如何将空间宽度设置为0px;在tabPanel主体中?

    1 回复  |  直到 16 年前
        1
  •  1
  •   Vandor    16 年前

    <span> 标记,所以大多数浏览器将空白呈现为DOM中的文本节点。要删除可忽略的空白节点,请在页面加载时调用JavaScript函数,如下所示:

    function fixTabContainer() {
        var tabContainerHeader = $get('<%#TabContainer1.ClientID%>' + '_header');
        var children = tabContainerHeader.childNodes;
        for (var i = 0; i < children.length; i++) {
            if (is_all_ws(children[i])) {
                tabContainerHeader.removeChild(children[i]);
                i--;
            }
        }
    }
    
    /**
     * Determine whether a node's text content is entirely whitespace.
     * (From https://developer.mozilla.org/en/whitespace_in_the_dom)
     * @param nod  A node implementing the |CharacterData| interface (i.e.,
     *             a |Text|, |Comment|, or |CDATASection| node
     * @return     True if all of the text content of |nod| is whitespace,
     *             otherwise false.
     */
     function is_all_ws(nod) {
         // Use ECMA-262 Edition 3 String and RegExp features
         return !(/[^\t\n\r ]/.test(nod.data));
     }
    

    脚本找到 <div> 它保存选项卡标题并循环通过这些标题 < 元素。它删除所有只包含可忽略空白的节点(它通过第二个函数确定)。

    注意:不幸的是ie8dom不包含文本节点(这是一个已知的bug)。