克隆节点时如何保留样式

时间:2011-07-30 00:44:10

标签: javascript dom styles traversal clonenode

我想获取一个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 个答案:

答案 0 :(得分:1)

您可以使用currentStyle(IE <9)或getComputedStyle(其他)检索每个元素的当前布局,并将其应用于克隆元素。