我目前正在使用与此类似的代码:
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的等价物(或我可以用来给我相同结果的函数)。
任何人都知道怎么做?
答案 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);