Javascript 如何获取选择HTML和选择父项?

Javascript 如何获取选择HTML和选择父项?,javascript,dom,Javascript,Dom,几年前,我加入了一个网络论坛。基本上,用户在前面的对话中选择一个部分,然后单击一个按钮引用它。脚本获取引用的HTML,并进入DOM树以找出是谁说的 虽然我记得我努力过,但我只能为她做这件事。但是,当时没有stackoverflow.com,Firefox也没有那么成熟。我想到现在为止,在Firefox中做这件事也很容易。这是代码的关键部分 range2Copy = frameDoc.selection.createRange(); html2Copy = range2Copy.htmlText

几年前,我加入了一个网络论坛。基本上,用户在前面的对话中选择一个部分,然后单击一个按钮引用它。脚本获取引用的HTML,并进入DOM树以找出是谁说的

虽然我记得我努力过,但我只能为她做这件事。但是,当时没有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包含用户选择文本的上一个线程。如果它没有什么意义,请查看整个代码。这是一个FCKeditor插件。

好的,我试着在firefox中运行你的代码,但它不起作用,这是一个修改后的版本:

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

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

似乎您已经有了一个工作代码。我不明白你有什么问题谢谢,娜迪亚。读了你最近对我的问题的回答后,我真的想起了我那尚未解决的问题。我的主要问题是createRange/htmlText,这是IE独有的技术。是的,关于这方面的文档位于。你是说现在Mozilla支持htmlText方法吗?它不在上面链接的文档中。