获得HTML输出选择/范围从网页在Mozilla Firefox
以下的获得从网页选择的文本到自定义Firefox扩展:获得HTML输出选择/范围从网页在Mozilla 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功能)
使用情况下,网页中的所有元素 -如果用户选择通过与格式的文本和图像的网页,我希望底层的HTML也能被复制,这样我就可以将它准确地粘贴到另一个XUL窗口中 - 如果我愿意的话,甚至可以将内容作为丰富的HTML邮件发送。
任何指针?
尝试使用此代码:执行该代码
var range = window.getSelection().getRangeAt(0);
var content = range.cloneContents();
后,content
将包含该选择DOM节点的副本的文件片段。请注意,事件侦听器不会被克隆。欲了解更多信息,请访问https://developer.mozilla.org/en/DOM/range.cloneContents
谢谢哈维,这对我很有用!在Chrome上也可以使用 – 2010-02-14 04:39:02
。为什么不接受这个答案? – jldupont 2010-05-18 18:17:43
出于好奇,你打算如何处理样式表? – Joel 2009-12-29 03:01:14
@Joel:我不认为你可以把样式表拿出来,也就是说,你只是捕获Html而就是这样。 – 2010-02-14 04:39:58
但是,如果您希望显示器具有所有代表性,则必须解决任何链接的资源(图像,CSS等)。 – Joel 2010-02-15 00:03:10