zClip使用时ZeroClipboard生成的位置不对的问题
zclip官网:http://steamdev.com/zclip
我之前在另外一篇博文里面写了一个解决生成的位置不对的问题,请参考:http://www.cnblogs.com/longshiyVip/p/4663870.html,但是最近按照之前的方式发现不管用,于是又开始需求解决方案,就是下面的这个方案。
zClip是个很好的兼容浏览器的复制到剪贴板的解决方案。zClip在简单干净的页面时工作正常,但放到工作平台的框架里面去以后就不工作了。ZeroClipboard取到的offsetTop和offsetLeft不对。通过firebug调试半天才知道原因。
在执行初期绑定代码后:
- <script type="text/javascript">
- $(document).ready(function () {
- $("a#copy-dynamic").zclip({
- path: 'js/ZeroClipboard.swf',
- copy: function () { return $('input#dynamic').val(); },
- afterCopy: function () { alert("ok"); }
- });
- });
- </script>
这段代码会自动在id="copy-dynamic”的控件后生成以下代码:
- <div class="zclip" id="zclip-ZeroClipboardMovie_1"
style="position: absolute; left: 10px; top: 33px; width: 258px; height: 14px; z-index: 99;">- <embed id="ZeroClipboardMovie_1" src="js/ZeroClipboard.swf" loop="false" menu="false"
quality="best" bgcolor="#ffffff" width="258" height="14" name="ZeroClipboardMovie_1"
align="middle" allowscriptaccess="always" allowfullscreen="false" type="application/x-shockwave-flash"
pluginspage="http://www.macromedia.com/go/getflashplayer" flashvars="id=1&width=258&height=14"
wmode="transparent"></div>
其本意是会在id="copy-dynamic”的控件上面覆盖“ZeroClipboard.swf”,检查发现这个位置不对,没有覆盖上去。
修改jquery.zclip.js中的getDOMObjectPosition函数,如下所示:
- 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(); //修改后
- info.left += jpos.left; //修改后
- info.top += jpos.top; //修改后
- }
- return info;
- }
这里使用了jQuery的position函数。
重新刷新界面,发现这次生成的位置终于对了,成功覆盖到id="copy-dynamic”的控件上面,成功!
zClip使用时ZeroClipboard生成的位置不对的问题的更多相关文章
- Android插件化(三):OpenAtlas的插件重建以及使用时安装
Android插件化(三):OpenAtlas的插件重建以及使用时安装 转 https://www.300168.com/yidong/show-2778.html 核心提示:在上一篇博客 An ...
- adb使用时出现unanthorized问题
adb使用时出现unanthorized问题 ADB 启动时,adb devices出现unanthorized问题. 检查USB调试是否开启. 重新拔插USB数据线是否有授权提示 重启adb :ad ...
- EntityFrameWork 使用时碰到的小问题
EntityFrameWork 使用时碰到的小问题 1,在使用orm访问数据库的相目里,也要引用EntityFrameWork.dll,否则无法使用orm 否则,编译错误 错误 5 "Sys ...
- PowerDesigner15使用时的十五个问题
15个问题列表: No.1:是不是一定要从CDM开始设计,然后在进行PDM的设计? NO.2:工具栏palette不见了,如何把它找出来? NO.3: 如何建立与数据库的关联? NO.4: 域和数据项 ...
- 本地计算机上的XXX服务启动后停止。某些服务在未由其它服务或程序使用时将自动停止。咋整?
用C#写个windows服务,安装部署后去启动时,提示说“本地计算机上的XXX服务启动后停止.某些服务在未由其它服务或程序使用时将自动停止”.咋整?就像下面酱紫: 度娘说不知道咋整,我想把程序附加到w ...
- Toolbar 和 CollapsingToolbarLayout一起使用时menu item无点击反应解决办法
昨天一直在琢磨为什么Toolbar和CollapsingToolbarLayout一起使用时menu item无点击放应的原因,后来在stackoverflow上一条回答,说可能是Toolbar的背景 ...
- jqueryUI中datepicker的使用,解决与asp.net中的UpdatePanel联合使用时的失效问题
1.jqueryUI的datepicker的使用 -->首先在jqueryUI官网上根据你的需要下载适合你系统主题的样式,jqueryUI主题下载地址: -->下载后的文件 jquery- ...
- Netty4.0.24.Final 版本中 IdleStateHandler 使用时的局限性
使用Netty在客户端和服务端建立通讯通道,一般来说,一个连接可能很久没有访问,由于各种各样的网络问题导致连接已经失效,客户端再次发送请求时会产生连接异常. 基于这个原因,需要在客户端和服务端之间建立 ...
- Saiku嵌入系统使用时传参数访问saiku(十六)
Saiku嵌入系统使用时传参数访问saiku Saiku通过iframe嵌入其他系统使用时,我们可以设定参数信息,然后根据url中参数对结果进行筛选哦. 这里我们实现的是根据日期字段进行范围查询,UR ...
随机推荐
- 原生sql和django的事务控制
def test(request): with connections['default'].cursor() as c: try: with transaction.atomic(using='de ...
- For循环中不可以嵌套RDD操作
今天犯了一个致命理解错误,Spark中的RDD Map操作只是一个计算式的传递,并不是Action,也就是在for循环中不会产生真正的计算. 因此,如果for循环中出现了RDD的Map类似操作,都会引 ...
- 【python】抄写爬淘宝已买到的宝贝的代码
教程地址:http://cuiqingcai.com/1076.html 这一篇掌握的不好.虽然代码可以跑,但是里面的很多东西都一知半解.需要有空的时候系统整理. 原代码中的正则表达式已经失效了,我自 ...
- Delphi New,Getmem,ReallocMem联系与区别
来自:http://www.cnblogs.com/jsrgren/archive/2011/10/31/2270353.html ---------------------------------- ...
- Selenium2+python自动化63-简易项目搭建【转载】
前言 到unittest这里基本上可以搭建一个简易的项目框架了,我们可以用一条run_main.py脚本去控制执行所有的用例,并生成报告,发送邮件一系列的动作 一.新建工程 1.打开pycharm左上 ...
- processEngine.getRuntimeService().createProcessInstanceQuery().processInstanceId(“ 132501”).active().singleResult();
JAVA: processEngine.getRuntimeService().createProcessInstanceQuery().processInstanceId(“ 132501”).ac ...
- [BZOJ2648] SJY摆棋子 kd-tree
2648: SJY摆棋子 Time Limit: 20 Sec Memory Limit: 128 MBSubmit: 5421 Solved: 1910[Submit][Status][Disc ...
- AC日记——Is it rated? codeforces 807a
Is it rated? 思路: 水题: 代码: #include <cstdio> #include <cstring> using namespace std; ],b[] ...
- C# 通过串口发送短信
手机短信群发作为企业日常通知,公告,天气预报等信息的一个发布平台,在于成本低,操作方便等诸多特点,成为企业通讯之首选.本文介绍短信的编码方式,AT指令以及用C#实现串口通讯的方法. 前言目前,发送短信 ...
- mvc路由问题
概述 使用MVC Routing可以不必将URL映射到网站中特定文件.通过添加Routing规则,使URL能够安装指定的规则发送HTTP请求,这种方式能够简洁.方便.有效.快速的实现对指定页面的访问或 ...