如何选择HTML和选择父级?

时间:2009-05-10 16:07:56

标签: javascript dom

几年前,我在网络论坛中添加了"smart quoting"。基本上,用户在先前对话中选择一个部分并单击按钮来引用它。脚本获取引用的HTML并上到DOM树以找出谁说的那样。

我只能为IE做这件事,虽然我记得很努力。但是,没有stackoverflow.com,Firefox也不那么成熟。我想现在,在Firefox中这样做很容易。这是代码的关键部分。

range2Copy = frameDoc.selection.createRange(); 
html2Copy = range2Copy.htmlText; 

el = range2Copy.parentElement();

// go up the HTML tree until post row node (id=postrowNNNN)

while (el.nodeName != 'BODY' &&
        !el.id.match(/postrow/)) {

    el = el.parentNode;
}

元素frameDoc包含用户选择文本的上一个线程。如果它没有多大意义,请参阅整个代码here。它是FCKeditor的插件。

1 个答案:

答案 0 :(得分:5)

好的,我试图在firefox中运行你的代码并且它不起作用,这是有效的修改版本:

var selection = window.getSelection(); 
var node = selection.anchorNode;

while (node.nodeName != 'BODY' && !node.id.match(/postrow/)){
    node = node.parentNode;
}