让用户在jquery中复制文本并重写粘贴

时间:2013-04-26 13:49:11

标签: javascript jquery

我试图让用户复制文本并重写他们粘贴的内容。

...示例

<p>This is some awesome text that i wrote</p>

说用户复制单词“awesome text”

我想说“真棒文字”并加上“ - 来自mywebsite.com”

所以现在当用户粘贴从我的网站复制的文本时,它会说“真棒文字 - 来自mywebsite.com”

我用Google搜索了这是我到目前为止所得到的http://jsfiddle.net/YD88T/

2 个答案:

答案 0 :(得分:2)

也许这段代码可以解决问题。它会在用户实际复制之前将您的文本附加到用户选择中。

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

A demo(选择至少25个字符)

答案 1 :(得分:-1)

如果您是拥有

的网站的开发者
  <p>This is some awesome text that i wrote</p> 

你可以创建一个捕获右键单击事件的脚本,将普通菜单替换为你自己制作的菜单,同时捕捉ctrl + c组合并从那里做任何你想做的事情。

如果你不是......你不能。