解决方案 »

  1.   

    flash文件有吗?jquery文件有吗?
    参考:jQuery ZeroClipboard粘贴板
      

  2.   


    jquery文件引入了如下:
    <script src="${web.context.path}/style/js/jquery-1.4.2.js" type="text/javascript"></script>那个flash文件指的是
    Zeroclipboard.swf这个么?这个在项目的目录下有
      

  3.   

    搞定了,哈哈!
    首先的准备工作:
    Zeroclipboard.swf,jquery.zclip.min.js,jquery.zclip.js把这三个JS放到项目的同一目录下在JSP页面中引入jquery.zclip.min.js,如下:
    <script src="${web.context.path}/style/js/jquery.zclip.min.js" type="text/javascript"></script>复制的标签及方法如下:
    <a href='javascript:void(0)' onmouseover='initCopyClip(\""+item.itemId+"\")' id='copytitle_"+item.itemId+"'>复制</a>  function initCopyClip(titleid){
    $('#copytitle_'+titleid).zclip({
    path:'${web.context.path}/style/js/ZeroClipboard.swf',
    copy:function(){
    return $("#pingtiao_"+titleid).html();
    }
    });
    }
      应该可以实现复制功能了,可是出乎意料的是却没有实现复制功能.经千辛万苦,终于找到原因了,因为Zclip是利用一个隐藏的flash文件来完成复制的功能,这个隐藏的flash我们看不到,没有作用到我的a标签的"复制"上,所以要修改下位置就OK了,修改的是jquery.zclilp.js中的一个方法:如下
    getDOMObjectPosition: function (obj, stopObj) {
            // get absolute coordinates for dom element
            var info = {
                left: 0,
                top: 0,
                width: obj.width ? obj.width : obj.offsetWidth,
                height: obj.height ? obj.height : obj.offsetHeight
            };        if (obj && (obj != stopObj)) {
    //info.left += obj.offsetLeft;
                //info.top += obj.offsetTop;
                jpos = $(obj).position(); //修改后 by 
                info.left += jpos.left; //修改后
                info.top += jpos.top; //修改后
            }        return info;
        }