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的位置是根据下面的方法

var info = {
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这些东西和各浏览器对各种标签的解释差异 都没有那么清楚,还是花了不少时间在这个小东西上面-_-!

写下来,希望能帮到碰到类似问题的朋友

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值