一键复制,兼容各种浏览器的做法是用ZeroClipboard.js的flash实现。具体原理不清楚,但是他是将flash的事件固定在某个地方,这个地方可覆盖在某个按钮上。
但如果这个按钮需要随屏幕滚动而改变位置。flash的定位还是在原来地方,再点击按钮就不会有作用了。
ZeroClipboard提供有reposition方法但定位的位置始终是距离网页高度,而不是屏幕的高度。
为了让flash固定在屏幕的某个位置,可以通过修改ZeroClipboard.js源码,
将style.position = 'absolute';修改为style.position = 'fixed';
absolute的意思是相对于某个元素的位置。而fixed是相对于浏览器的位置和网页无关了