一个有趣的禁止复制代码

其实是clipboard hijacking技术罢了。

主要内容是在content-min中: <

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
KISSY.ready(function (c)
{
    var i = "textarea", b = "\u7981\u6b62copy!", g = c.Event, f = document, d = f.body, h = c.DOM, e = c.Node, 
    a = new e(d.appendChild(h.create("<" + i + ' style="position:absolute;left:-9999px;">' + b + "</" + i + ">")));
    g.on(document, "contextmenu", function (j)
    {
        j.halt()
    });
    g.on(document, "keydown", function (l)
    {
        var m = l.keyCode;
        if (m === 67 && (l.ctrlKey || l.metaKey))
        {
            var j = new c.Selection(f), k = j.getRanges()[0];
            a[0].focus();
            a[0].select();
            setTimeout(function ()
            {
                k.select()
            }, 0)
        }
    });
    d.appendChild(document.createTextNode("\u6211\u662f\u5185\u5bb9\uff0c\u4f60\u53ef\u4ee5copy\u6211\u770b\u770b\uff01"))
});

适用于所有浏览器,google Docs也是使用的这种技术。
例子可以在http://lite-ext.googlecode.com/svn/trunk/lite-ext/playground/no-copy/no-copy.html找到

此条目发表在 技术交流 分类目录,贴了 , 标签。将固定链接加入收藏夹。

一个有趣的禁止复制代码》有 10 条评论

  1. MF Windows XP Opera 9.80 说:

    Opera
    选择文字内容,点击“菜单”-“网页”-“复制”
    轻松搞定。

  2. 小明猪 Windows 7 Firefox 3.6.8 说:

    对付这种代码同LS毫无压力 :hide

  3. 卜卜口の Windows 7 Google Chrome 6.0.458.1 说:

    :zzz 随机到的banner很友爱XD

  4. 睿智小超人 Windows 7 Internet Explorer 8.0 说:

    会不会对搜索引擎不友好?

    • janxin Windows 7 Google Chrome 6.0.488.0 说:

      @睿智小超人, 对搜索引擎来说应该是十分不友好,不过这只是用来保护敏感内容的,还好还好

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">

:zzz :stop :stone :smile :oops: :love :hurt2 :hurt :hit :hide :freeze :evil2 :cry :blind :angel 注意: 评论者允许使用'@user空格'的方式将自己的评论通知另外评论者。例如, ABC是本文的评论者之一,则使用'@ABC '(不包括单引号)将会自动将您的评论发送给ABC。使用'@all ',将会将评论发送给之前所有其它评论者。请务必注意user必须和评论者名相匹配(大小写一致)。