как сохранить стиль при клонировании узла - PullRequest
0 голосов
/ 30 июля 2011

Я хочу взять html-документ (главу книги) и разделить его на страницы (массив DIV, каждый из которых содержит страницу html-контента, которая вписывается в предписанные размеры DIV). Я прошёл DOM со следующим кодом (найден на этом сайте!).

function walk(node, func)
{
    func(node);
    node = node.firstChild;
    while (node)
    {
        walk(node, func);
        node = node.nextSibling;
    }
};

Функция func называется test и находится ниже.

function test(node)
{
    var copy=node.cloneNode(false);

    currentPageInArray.appendChild(copy);

    //Test if we still fit
    if( $(currentPageInArray).height() <= maxPageHeight )
    {
        //All good
    }
    else
    {
        //We dont fit anymore 
        //Remove node that made us exceed the height
        currentPageInArray.removeChild(copy);

        createNewPage();
        currentPageInArray.appendChild(copy); //into new page
    }
}

Мои страницы генерируются правильно, однако я теряю все стили, такие как курсив, полужирный, заголовки и т. Д. Если я пытаюсь использовать клон (true), многие элементы дублируются несколько раз. Как я могу это исправить? Заранее спасибо.

1 Ответ

1 голос
/ 30 июля 2011

Вы можете получить текущий макет каждого элемента, используя currentStyle (IE <9) или <a href="http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSview-getComputedStyle" rel="nofollow"> getComputedStyle (Другие) и применить его к клонированным элементам.

...