我正在尝试让用户复制文本,并重写他们粘贴的内容。
示例...
<p>This is some awesome text that i wrote</p>假设用户复制了“words”
我想用“棒极了的文字”加上“--来自我的mywebsite.com”
所以现在当用户粘贴从我的网站复制的文本时,它会说,“很棒的文本-来自我的mywebsite.com”
我已经在谷歌上搜索过了,这是我到目前为止得到的,http://jsfiddle.net/YD88T/
发布于 2013-04-26 22:01:46
也许这段代码可以做到这一点。在用户实际复制文本之前,它会将文本附加到用户选择中。
jQuery.fn.addtocopy = function(usercopytxt) {
var options = {htmlcopytxt: '<br>More: <a href="'+window.location.href+'">'+window.location.href+'</a><br>', minlen: 25, addcopyfirst: false}
$.extend(options, usercopytxt);
var copy_sp = document.createElement('span');
copy_sp.id = 'ctrlcopy';
copy_sp.innerHTML = options.htmlcopytxt;
return this.each(function(){
$(this).mousedown(function(){$('#ctrlcopy').remove();});
$(this).mouseup(function(){
if(window.getSelection){ //good times
var slcted=window.getSelection();
var seltxt=slcted.toString();
if(!seltxt||seltxt.length<options.minlen) return;
var nslct = slcted.getRangeAt(0);
seltxt = nslct.cloneRange();
seltxt.collapse(options.addcopyfirst);
seltxt.insertNode(copy_sp);
if (!options.addcopyfirst) nslct.setEndAfter(copy_sp);
slcted.removeAllRanges();
slcted.addRange(nslct);
} else if(document.selection){ //bad times
var slcted = document.selection;
var nslct=slcted.createRange();
var seltxt=nslct.text;
if (!seltxt||seltxt.length<options.minlen) return;
seltxt=nslct.duplicate();
seltxt.collapse(options.addcopyfirst);
seltxt.pasteHTML(copy_sp.outerHTML);
if (!options.addcopyfirst) {nslct.setEndPoint("EndToEnd",seltxt); nslct.select();}
}
});
});
}我已经从这里开始了:http://naviny.by/js/main.min.js
demo (选择至少25个字符)
发布于 2013-04-26 21:58:57
如果您是网站的开发人员,
<p>This is some awesome text that i wrote</p> 您可以创建一个脚本来捕获右键单击事件,用您自己创建的菜单替换普通菜单,还可以捕获ctrl+c组合并从中执行任何您想做的事情。
如果你不是..。你不能这么做。
https://stackoverflow.com/questions/16238142
复制相似问题