zeroclipboard的使用问题
基本使用,官网上的教程,就不说了.官网地址:http://code.google.com/p/zeroclipboard/ 有一点点补充,就是在本地测试静态页的时候,需要在falsh的全局安全设置中,把下下来的flash添加进去,具体操作方法见flash的网站.下面的地址可以设置 http://www.macromedia.com/support/documentation/cn/flashplayer/help/settings_manager04.html 使用过程中还是遇到了各种各样的问题。我的需求是:在弹出一个对话框(jquery dialog)之后,初始化zeroclipboard,zeroclipboard初始化flash文件的时候确定flash的位置是根据下面的方法 left: 0,? top: 0,? width: obj.width ? obj.width : obj.offsetWidth,? height: obj.height ? obj.height : obj.offsetHeight }; while (obj && (obj != stopObj)) { info.left += obj.offsetLeft; info.top += obj.offsetTop; obj = obj.offsetParent; } 我在用的时候跟官网的例子一样的结构 <span id="clip_container"><span id="clip_link" ><b>复制链接到剪贴板</b></span></span> ?? 最后clip.glue('clip_link','clip_container' ); 生成的dom元素都正常,但是就找不到包裹着flash的DIV在哪儿(设置了背景色,宽高都不为0),不小心地改了生成的DIV的top跟left,终于发现DIV出来了。原因是jquery ui生成的对话框,也是div,并且设置了position属性,内层div显示的时候left跟top属性值就是相对这个父div的。事实上zeroclipboard生成出来的dom元素结构,是希望left跟top属性是相对'clip_container' 这个元素的。把clip_container元素加上style="position:relative;"再测试。 firefox,chrome下正常了,IE9,没反应。 用工具看生成出来的div和flash,发现div和flash的height值为0(会在页面上不显示)。猜测原因可能是span的offsetHeight会被IE解释成0,还是尝试各种方法最后发现把<span id="clip_link" >元素加上属性style="display:inline-block"问题就解决了(直接用block会出现flash的宽度占据span所在行的整行) 目前还没有在万恶的IE6下测试。大概的问题原因也知道了,但是因为对offsetWidth,offsetHeight这些东西和各浏览器对各种标签的解释差异 都没有那么清楚,还是花了不少时间在这个小东西上面-_-! 写下来,希望能帮到碰到类似问题的朋友 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |