如果突出显示的文章的文字我已经看到了几个网站,现在在哪里,复制,然后粘贴在他们可以更多的文字,将其添加。编辑剪贴板中的数据时,复制/粘贴从一个网站
尝试从http://belfasttelegraph.co.uk/的文章中复制和粘贴一段文字,您会看到我的意思 - 他们在粘贴的文本中添加一个链接到原始文章。
这是如何完成的?我假设有一些JavaScript在这里
如果突出显示的文章的文字我已经看到了几个网站,现在在哪里,复制,然后粘贴在他们可以更多的文字,将其添加。编辑剪贴板中的数据时,复制/粘贴从一个网站
尝试从http://belfasttelegraph.co.uk/的文章中复制和粘贴一段文字,您会看到我的意思 - 他们在粘贴的文本中添加一个链接到原始文章。
这是如何完成的?我假设有一些JavaScript在这里
这是一个很好的效果,你可以看到,在使用Firebug的副本解雇(在Firefox)的脚本。
启动萤火虫和加载页面,选择明确的(因为页面使用了大量的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()
由于@Crimson指出,有方法来操作剪贴板,like zeroclipboard其中使用Flash和图像。
我想那该是多么的技术是通过使用图像获取要求更改剪贴板完成。
我不知道我是否在路上捡起-1? – amelvin 2010-03-08 15:38:47
+1使用Firebug的解释。 – 2012-03-01 04:54:59
工作你会发现,当你使用组合键[Ctrl + C键],这只会发生,而不是如果突出显示文本和选择从右键菜单复制。
它们只是捕获了[Ctrl + C]击键。
此外,将数据添加到剪贴板,看看这篇文章: How do I copy to the clipboard in JavaScript?
不同意。我使用的是XP/Firefox 3.5.8,如果我突出显示,请右键单击并选择复制,然后将永久链接附加到复制的文本中。 – amelvin 2010-03-08 11:09:04
我最近注意到这个“剪贴板劫持”网站上的大量涌入。 thefutoncritic.com,cracked.com ...如果您使用Adblock,只需进入“手动条目”列表并添加* post-copypaste.js *即可。这应该防止网站将他们的广告添加到剪贴板。
其他网站使用的其他解决方案是使用jQuery和“复制” /“腰斩”事件:
$('body').bind('copy cut',function(e){manipulate();});
一些例子在这里: http://www.mkyong.com/jquery/how-to-detect-copy-paste-and-cut-behavior-with-jquery/
新闻站点我参观使用本函数将追加的“源”添加到复制的选择中:
function addLink() {
var body_element = document.getElementsByTagName('body')[0];
var selection;
selection = window.getSelection();
// change this if you want
var pagelink = "<br><br>Fuente: Emol.com - <a href='"+document.location.href+"'>"+document.location.href+"</a><br>";
var copytext = selection + pagelink;
var newdiv = document.createElement('div');
newdiv.style.position='absolute';
newdiv.style.left='-99999px';
body_element.appendChild(newdiv);
newdiv.innerHTML = copytext;
selection.selectAllChildren(newdiv);
window.setTimeout(function() {
body_element.removeChild(newdiv);
},0);
}
document.oncopy = addLink;
有趣。我一直在竭尽全力去弄清楚如何防止*任何网站,永远不要这样做。谨慎使用。 – Ricky 2015-01-13 17:44:40