我正在尝试允许用户使用Javascript将页面上的“富文本”复制到Word /他们的电子邮件程序等中。
为此,我首先使用此功能创建范围选择:
function copyHTMLToClipboard($target) {
var contents = false;
if (window.getSelection) {
contents = window.getSelection();
} else if (document.getSelection) {
contents = document.getSelection();
} else if (document.selection) {
contents = document.selection.createRange().text;
}
if (contents && (contents+'').length > 0) {
return contents;
}
}
function copy($target) {
$target.select();
contents = copyHTMLToClipboard($target);
}
然后我尝试将输出发送到zeroclipboard,如下所示:
$(".zclip").zclip({
...
copy: function() { contents = copy($target); }
...
});
这会抛出错误“Uncaught RangeError:超出最大调用堆栈大小”
请注意,我不希望复制的文字如下:
<h1>Something</h1>
<strong>Something else</strong>
我希望文本包含可以粘贴到Word / Gmail等其他程序中的富文本(格式化文本)。基本上,如果您手动选择文本并复制它,您将获得的内容。
我做错了什么?我正在尝试的是什么?