❗ 本文最后更新于 5600 天前,文中所描述的信息可能已发生改变,请谨慎使用。
很早之前,写过一篇“跨浏览器“复制到剪贴板”的解决方案”,当时给出的解决方案是,IE使用window.clipboardData,firefox等其它浏览器使用flash来调用System.setClipboard方法。但是,随着Flash10安全策略更新,只允许在flash内部调用setClipboard方法,那篇文章给出的demo已经失效。我重新写了一个demo,见这里。
新demo是在flash内部调用的setClipboard方法,原则上安装了flash的浏览器都可以用;另外,IE7及以上版本用js调用clipboardData会弹出选择是否允许的提示,往往初级用户看到这样提示还以为网站有病毒,所以这次一视同仁所有浏览器都用flash写剪切板。原理比较简单,大概说一下:
- 页面上提供两个js方法getData和copySuccess供flash调用,getData返回需要复制的内容,copySuccess是复制成功的回调函数;
- 往flash里添加一个任意的DisplayObject,例如TextField,注册Click事件,事件响应函数里先调用页面上的js方法getData得到粘贴内容,再用System.setClipboard写入剪切板,最后通知页面上的copySuccess。
完整的代码见这里。如果要个性化提示文字,打开clipboard.as,修改后编译即可。
本文链接:https://mailseason.com/post/flash-and-clipboard-2.html,参与评论 »
--EOF--
发表于 2009-08-25 17:36:21,并被添加「Flash、用户体验、跨浏览器」标签。查看本文 Markdown 版本 »
Comments
Waline 评论加载中...