首页 新闻 搜索 专区 学院

请问博文中,点击复制按钮进行复制文本功能是怎么实现的

0
悬赏园豆:100 [已解决问题] 解决于 2018-01-07 12:04

找了老多说明,但是没弄出来,新手,请懂得大哥帮忙解惑,谢谢!

孙红雷哔哔的主页 孙红雷哔哔 | 初学一级 | 园豆:112
提问于:2017-12-18 17:33
< >
分享
最佳答案
0

参考 http://blog.csdn.net/qq_16559905/article/details/72677379

http://blog.csdn.net/bbirdsky/article/details/9368169

收获园豆:50
ycyzharry | 高人七级 |园豆:22493 | 2017-12-18 19:57
其他回答(4)
1

可以使用js实现,我之前做一个功能时,有用过一个开源的 Clipboard.js 这个插件应该就是你所要描述的功能

收获园豆:10
BUTTERAPPLE | 园豆:2950 (老鸟四级) | 2017-12-18 17:49
0
function copyCnblogsCode(n) {
    var i = getCnblogsCodeContainer(n),
        u = getCnblogsCodeText(i),
        t = document.createElement("textarea"),
        r;
    $(t).val(u);
    $(t).css("width", $(i).width());
    r = $(i).height() * .8;
    r > 600 && (r = 600);
    $(t).css("height", r);
    $(t).css("font-family", "Courier New");
    $(t).css("font-size", "12px");
    $(t).css("line-height", "1.5");
    $(i).html(t);
    $(t).select();
    $("<div>按 Ctrl+C 复制代码<\/div>").insertBefore($(t));
    $("<div>按 Ctrl+C 复制代码<\/div>").insertAfter($(t))
}

function getCnblogsCodeContainer(n) {
    var t = $(n).closest("pre");
    return t.length == 0 && (t = $(n).closest("div.cnblogs_code")), t
}

function getCnblogsCodeText(n) {
    var t = "\n" + $(n).html().replace(/&nbsp;/g, " ").replace(/<br\s*\/?>/ig, "\n").replace(/<[^>]*>/g, "");
    return t = t.replace(/\n(\s*\d+\s)/ig, "\n"), t = t.replace(/\r\n/g, "\n"), t = t.replace(/\nView Code/g, ""), typeof Encoder != undefined && (t = Encoder.htmlDecode(t)), $.trim(t)
}

看看博客园的代码不就清楚了。

收获园豆:10
~冰 | 园豆:509 (小虾三级) | 2017-12-18 18:10
1

http://www.cnblogs.com/shy-huang/p/4891459.html  这有点击复制功能,不知道是否符合你的需求。

收获园豆:20
肖恩部落 | 园豆:575 (小虾三级) | 2017-12-19 11:36
0

希望对你有所帮助!

收获园豆:10
ckx0709 | 园豆:392 (菜鸟二级) | 2017-12-19 17:10
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册