如何向复制的Web文本添加额外信息

如何向复制的Web文本添加额外信息

一些网站现在使用来自Tynt的JavaScript服务,该文本将文本附加到复制的内容。

如果您使用此网站从网站复制文本然后粘贴,则会获得指向文本底部原始内容的链接。

Tynt也会跟踪它。这是一个很好的技巧。

他们这样做的脚本令人印象深刻 - 而不是试图操纵剪贴板(只有IE的旧版本允许他们默认执行,哪些应该总是关闭)他们操纵实际选择。

因此,当您选择一个文本块时,额外内容将作为隐藏<div>添加到您的选择中。粘贴时,将忽略额外的样式,并显示额外的链接。

这对于简单的文本块实际上相当容易,但是当您考虑在不同浏览器中复杂HTML中的所有选择时,这是一场噩梦。

我正在开发一个Web应用程序 - 我不希望任何人能够跟踪复制的内容,我希望额外的信息包含一些上下文,而不仅仅是一个链接。在这种情况下,Tynt的服务并不合适。

有没有人知道一个开源JavaScript库(可能是一个jQuery插件或类似的)提供类似的功能,但不暴露内部应用程序数据?


忽然笑
浏览 459回答 3
3回答

青春有我

这是一个来自上述修改过的解决方案的vanilla javascript解决方案,但支持更多浏览器(跨浏览器方法)function&nbsp;addLink(e)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;e.preventDefault(); &nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;pagelink&nbsp;=&nbsp;'\nRead&nbsp;more:&nbsp;'&nbsp;+&nbsp;document.location.href, &nbsp;&nbsp;&nbsp;&nbsp;copytext&nbsp;=&nbsp;&nbsp;window.getSelection()&nbsp;+&nbsp;pagelink; &nbsp;&nbsp;&nbsp;&nbsp;clipdata&nbsp;=&nbsp;e.clipboardData&nbsp;||&nbsp;window.clipboardData; &nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(clipdata)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;clipdata.setData('Text',&nbsp;copytext); &nbsp;&nbsp;&nbsp;&nbsp;}}document.addEventListener('copy',&nbsp;addLink);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript