如何在Firefox中获取createRange()的HTML标记

时间:2010-04-13 16:58:30

标签: javascript firefox

我目前正在使用与此类似的代码:

try {
 // IE ONLY
 var theElement = "myElementName";
 window.frames[theElement].focus();
 var selection = window.frames[theElement].document.selection.createRange();
 alert ( selection.htmlText );  
} catch(e) {
 var selection = window.frames[theElement].document.getSelection();
 alert ( selection );       
}

正如您所看到的,我正在从iframe访问一个节点(没有乐趣)。我肯定在新的领域,所以我确定会有更多的问题出现,但是现在,我试图让Firefox给我与IE相同的结果

在IE中,我可以使用 createRange返回的对象的(显然仅限IE htmlText 属性来访问选择的HTML代码( )即可。我正在寻找的是Firefox的等价物(或我可以用来给我相同结果的函数)。

任何人都知道怎么做?

1 个答案:

答案 0 :(得分:2)

这适用于Firefox 2及更高版本(在早期版本中未经测试):

var selection = window.frames[theElement].getSelection();
var range = selection.getRangeAt(0);
var div = document.createElement("div");
div.appendChild(range.cloneContents());
alert(div.innerHTML);