Javascript 从Mozilla Firefox中的网页中获取超出选择/范围的HTML

Javascript 从Mozilla Firefox中的网页中获取超出选择/范围的HTML,javascript,firefox-addon,xul,firefox-3,Javascript,Firefox Addon,Xul,Firefox 3,我目前使用以下方法将所选文本从网页获取到自定义firefox扩展: getSelectedText: function(){ var textWindow = document.commandDispatcher.focusedWindow; var text = textWindow.getSelection(); if (text == null) {text =' ';} text = text.toString(); text = te

我目前使用以下方法将所选文本从网页获取到自定义firefox扩展:

getSelectedText: function(){
    var textWindow = document.commandDispatcher.focusedWindow;
    var text = textWindow.getSelection();      
    if (text == null) {text =' ';}
    text = text.toString();
    text = text.replace(/^\s*$/ , "");
    text = text.replace(/\r/g, "\r");
    text = text.replace(/\n/g, "\n");
    text = text.replace(/^\s+|\s+$/g , " ");
    text = text.replace(new RegExp(/\u2019/g), "'");
    text = text.replace(new RegExp(/\u201A/g), ",");
    text = text.replace(new RegExp(/\u201B/g), "'");
    return {str:text};
}
这对于纯文本来说非常有效

我的问题是,我想复制网页的所有元素(有点像safari中的webclips功能)

用例-如果用户通过带有格式化文本和图像的网页进行选择,我希望底层HTML也能被复制,这样我就可以准确地将其粘贴到另一个XUL窗口中-如果我愿意,甚至可以将内容作为富HTML电子邮件发送

有任何指针吗?

请尝试使用以下代码:

var range = window.getSelection().getRangeAt(0);
var content = range.cloneContents();

执行此代码后,
content
将是一个文档片段,其中包含所选DOM节点的副本。请注意,不会克隆事件侦听器。欲了解更多信息,请访问

出于好奇,您打算如何处理样式表?@Joel:我认为您无法获取样式表,即,您只需捕获Html即可。但是,如果您希望显示具有代表性,则必须解决任何链接资源(图像、css等)。@Joel-请检查-啊,我看到了您的
绝对URLSINNODE
功能。但是
n.setAttribute(a,n[a])是如何实现的玩这个把戏?