代码之家  ›  专栏  ›  技术社区  ›  buti-oxa

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

  •  3
  • buti-oxa  · 技术社区  · 17 年前

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

    虽然我记得我努力过,但我只能为IE做这件事。但是,没有堆栈溢出。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 回复  |  直到 17 年前
        1
  •  6
  •   Nadia Alramli    17 年前

    var selection = window.getSelection(); 
    var node = selection.anchorNode;
    
    while (node.nodeName != 'BODY' && !node.id.match(/postrow/)){
        node = node.parentNode;
    }