У меня была очень похожая проблема с пробелами между заголовками табуляции. Заголовки вкладок представляют собой теги <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>
, который содержит заголовки вкладок и проходит по этим элементам заголовка <span>
. Он удаляет все узлы, которые содержат только игнорируемые пробелы (которые он определяет с помощью второй функции).
Примечание. К сожалению, в DOM IE8 нет текстовых узлов (это известная ошибка).