从网站复制/粘贴时编辑剪贴板数据

rut*_*ord 14 javascript clipboard dhtml web-applications copy-paste

我现在看到一些网站,如果你突出文章的文字,复制它,然后粘贴,他们可以添加更多的文字.

尝试从http://belfasttelegraph.co.uk/上的文章中复制并粘贴一段文本,您将看到我的意思 - 他们在粘贴的文本中添加了原始文章的链接.

这是怎么做到的?我假设这里有一些javascript工作

ame*_*vin 8

这是一个很好的效果,你可以看到使用Firebug(在Firefox中)复制的脚本.

启动Firebug并加载页面,选择清除(因为页面使用了很多ajax,有很快的100个请求).然后选择"全部"选项卡并尝试复制.您将看到1x1像素图像的请求,但如果您按+按钮查看详细信息,您将在'params'选项卡中看到此GET请求将您请求的文本作为'content'参数传递,将用于操纵剪贴板DOM的xpath信息:

start_node_xpath    /HTML/BODY[@id='belfast']/DIV[@id='root']/DIV[@id='content']/DIV[@id='mainColumn']/DIV[@id='article']/DIV[5]/P[39]/text()

end_node_xpath  /HTML/BODY[@id='belfast']/DIV[@id='root']/DIV[@id='content']/DIV[@id='mainColumn']/DIV[@id='article']/DIV[5]/P[41]/text()
Run Code Online (Sandbox Code Playgroud)

正如@Crimson指出的那样,有一些操作剪贴板的方法,比如使用Flash和图像的zeroclipboard.

我认为这是通过使用图像获取请求来更改剪贴板来完成该技术的方法.