Javascript 从Mozilla Firefox中的网页中获取超出选择/范围的HTML
我目前使用以下方法将所选文本从网页获取到自定义firefox扩展: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
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])是如何实现的代码>玩这个把戏?