亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

JS/FLASH實現(xiàn)復制代碼到剪貼板(兼容所有瀏覽器)

2019-11-20 22:41:09
字體:
供稿:網(wǎng)友
目前,如果使用javascript來寫復制到剪貼板的代碼,一般都是瀏覽器不兼容的。所以采用flash的方式,模擬一個層,再來復制,就可以做到全部瀏覽器都適用哦~

需要下載一個swf文件,和一個js文件。把這兩個文件,和htm放到一起。
圖示:


必須放在服務器端使用哦。
圖示:


JS代碼:
復制代碼 代碼如下:

ZeroClipboard.js
// Simple Set Clipboard System
// Author: Joseph Huckaby
var ZeroClipboard = {
version: "1.0.7",
clients: {}, // registered upload clients on page, indexed by id
moviePath: 'ZeroClipboard.swf', // URL to movie
nextId: 1, // ID of next movie
$: function(thingy) {
// simple DOM lookup utility function
if (typeof(thingy) == 'string') thingy = document.getElementById(thingy);
if (!thingy.addClass) {
// extend element with a few useful methods
thingy.hide = function() { this.style.display = 'none'; };
thingy.show = function() { this.style.display = ''; };
thingy.addClass = function(name) { this.removeClass(name); this.className += ' ' + name; };
thingy.removeClass = function(name) {
var classes = this.className.split(//s+/);
var idx = -1;
for (var k = 0; k < classes.length; k++) {
if (classes[k] == name) { idx = k; k = classes.length; }
}
if (idx > -1) {
classes.splice( idx, 1 );
this.className = classes.join(' ');
}
return this;
};
thingy.hasClass = function(name) {
return !!this.className.match( new RegExp("http://s*" + name + "http://s*") );
};
}
return thingy;
},
setMoviePath: function(path) {
// set path to ZeroClipboard.swf
this.moviePath = path;
},
dispatch: function(id, eventName, args) {
// receive event from flash movie, send to client
var client = this.clients[id];
if (client) {
client.receiveEvent(eventName, args);
}
},
register: function(id, client) {
// register new client to receive events
this.clients[id] = client;
},
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
};
while (obj && (obj != stopObj)) {
info.left += obj.offsetLeft;
info.top += obj.offsetTop;
obj = obj.offsetParent;
}
return info;
},
Client: function(elem) {
// constructor for new simple upload client
this.handlers = {};
// unique ID
this.id = ZeroClipboard.nextId++;
this.movieId = 'ZeroClipboardMovie_' + this.id;
// register client with singleton to receive flash events
ZeroClipboard.register(this.id, this);
// create movie
if (elem) this.glue(elem);
}
};
ZeroClipboard.Client.prototype = {
id: 0, // unique ID for us
ready: false, // whether movie is ready to receive events or not
movie: null, // reference to movie object
clipText: '', // text to copy to clipboard
handCursorEnabled: true, // whether to show hand cursor, or default pointer cursor
cssEffects: true, // enable CSS mouse effects on dom container
handlers: null, // user event handlers
glue: function(elem, appendElem, stylesToAdd) {
// glue to DOM element
// elem can be ID or actual DOM element object
this.domElement = ZeroClipboard.$(elem);
// float just above object, or zIndex 99 if dom element isn't set
var zIndex = 99;
if (this.domElement.style.zIndex) {
zIndex = parseInt(this.domElement.style.zIndex, 10) + 1;
}
if (typeof(appendElem) == 'string') {
appendElem = ZeroClipboard.$(appendElem);
}
else if (typeof(appendElem) == 'undefined') {
appendElem = document.getElementsByTagName('body')[0];
}
// find X/Y position of domElement
var box = ZeroClipboard.getDOMObjectPosition(this.domElement, appendElem);
// create floating DIV above element
this.div = document.createElement('div');
var style = this.div.style;
style.position = 'absolute';
style.left = '' + box.left + 'px';
style.top = '' + box.top + 'px';
style.width = '' + box.width + 'px';
style.height = '' + box.height + 'px';
style.zIndex = zIndex;
if (typeof(stylesToAdd) == 'object') {
for (addedStyle in stylesToAdd) {
style[addedStyle] = stylesToAdd[addedStyle];
}
}
// style.backgroundColor = '#f00'; // debug
appendElem.appendChild(this.div);
this.div.innerHTML = this.getHTML( box.width, box.height );
},
getHTML: function(width, height) {
// return HTML for movie
var html = '';
var flashvars = 'id=' + this.id +
'&width=' + width +
'&height=' + height;
if (navigator.userAgent.match(/MSIE/)) {
// IE gets an OBJECT tag
var protocol = location.href.match(/^https/i) ? 'https://' : 'http://';
html += '<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="'+protocol+'download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" width="'+width+'" height="'+height+'" id="'+this.movieId+'" align="middle"><param name="allowScriptAccess" value="always" /><param name="allowFullScreen" value="false" /><param name="movie" value="'+ZeroClipboard.moviePath+'" /><param name="loop" value="false" /><param name="menu" value="false" /><param name="quality" value="best" /><param name="bgcolor" value="#ffffff" /><param name="flashvars" value="'+flashvars+'"/><param name="wmode" value="transparent"/></object>';
}
else {
// all other browsers get an EMBED tag
html += '<embed id="'+this.movieId+'" src="'+ZeroClipboard.moviePath+'" loop="false" menu="false" quality="best" bgcolor="#ffffff" width="'+width+'" height="'+height+'" name="'+this.movieId+'" align="middle" allowScriptAccess="always" allowFullScreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" flashvars="'+flashvars+'" wmode="transparent" />';
}
return html;
},
hide: function() {
// temporarily hide floater offscreen
if (this.div) {
this.div.style.left = '-2000px';
}
},
show: function() {
// show ourselves after a call to hide()
this.reposition();
},
destroy: function() {
// destroy control and floater
if (this.domElement && this.div) {
this.hide();
this.div.innerHTML = '';
var body = document.getElementsByTagName('body')[0];
try { body.removeChild( this.div ); } catch(e) {;}
this.domElement = null;
this.div = null;
}
},
reposition: function(elem) {
// reposition our floating div, optionally to new container
// warning: container CANNOT change size, only position
if (elem) {
this.domElement = ZeroClipboard.$(elem);
if (!this.domElement) this.hide();
}
if (this.domElement && this.div) {
var box = ZeroClipboard.getDOMObjectPosition(this.domElement);
var style = this.div.style;
style.left = '' + box.left + 'px';
style.top = '' + box.top + 'px';
}
},
setText: function(newText) {
// set text to be copied to clipboard
this.clipText = newText;
if (this.ready) this.movie.setText(newText);
},
addEventListener: function(eventName, func) {
// add user event listener for event
// event types: load, queueStart, fileStart, fileComplete, queueComplete, progress, error, cancel
eventName = eventName.toString().toLowerCase().replace(/^on/, '');
if (!this.handlers[eventName]) this.handlers[eventName] = [];
this.handlers[eventName].push(func);
},
setHandCursor: function(enabled) {
// enable hand cursor (true), or default arrow cursor (false)
this.handCursorEnabled = enabled;
if (this.ready) this.movie.setHandCursor(enabled);
},
setCSSEffects: function(enabled) {
// enable or disable CSS effects on DOM container
this.cssEffects = !!enabled;
},
receiveEvent: function(eventName, args) {
// receive event from flash
eventName = eventName.toString().toLowerCase().replace(/^on/, '');
// special behavior for certain events
switch (eventName) {
case 'load':
// movie claims it is ready, but in IE this isn't always the case...
// bug fix: Cannot extend EMBED DOM elements in Firefox, must use traditional function
this.movie = document.getElementById(this.movieId);
if (!this.movie) {
var self = this;
setTimeout( function() { self.receiveEvent('load', null); }, 1 );
return;
}
// firefox on pc needs a "kick" in order to set these in certain cases
if (!this.ready && navigator.userAgent.match(/Firefox/) && navigator.userAgent.match(/Windows/)) {
var self = this;
setTimeout( function() { self.receiveEvent('load', null); }, 100 );
this.ready = true;
return;
}
this.ready = true;
this.movie.setText( this.clipText );
this.movie.setHandCursor( this.handCursorEnabled );
break;
case 'mouseover':
if (this.domElement && this.cssEffects) {
this.domElement.addClass('hover');
if (this.recoverActive) this.domElement.addClass('active');
}
break;
case 'mouseout':
if (this.domElement && this.cssEffects) {
this.recoverActive = false;
if (this.domElement.hasClass('active')) {
this.domElement.removeClass('active');
this.recoverActive = true;
}
this.domElement.removeClass('hover');
}
break;
case 'mousedown':
if (this.domElement && this.cssEffects) {
this.domElement.addClass('active');
}
break;
case 'mouseup':
if (this.domElement && this.cssEffects) {
this.domElement.removeClass('active');
this.recoverActive = false;
}
break;
} // switch eventName
if (this.handlers[eventName]) {
for (var idx = 0, len = this.handlers[eventName].length; idx < len; idx++) {
var func = this.handlers[eventName][idx];
if (typeof(func) == 'function') {
// actual function reference
func(this, args);
}
else if ((typeof(func) == 'object') && (func.length == 2)) {
// PHP style object + method, i.e. [myObject, 'myMethod']
func[0][ func[1] ](this, args);
}
else if (typeof(func) == 'string') {
// name of function
window[func](this, args);
}
} // foreach event handler defined
} // user defined handler for event
}
};

html代碼:
復制代碼 代碼如下:

a.htm
<html>
<head>
<title>Zero Clipboard Test</title>
<style type="text/css">
body { font-family:arial,sans-serif; font-size:9pt; }
.my_clip_button { width:150px; text-align:center; border:1px solid black; background-color:#ccc; margin:10px; padding:10px; cursor:default; font-size:9pt; }
.my_clip_button.hover { background-color:#eee; }
.my_clip_button.active { background-color:#aaa; }
</style>
</head>
<body>
<div id="d_clip_container" style="position:relative">
<div id="d_clip_button" class="my_clip_button"><b>Copy To Clipboard...</b></div>
</div>
<textarea id="myresource" class="clearfix" onChange="clip.setText(this.value)">我復制</textarea>
<script type="text/javascript" src="ZeroClipboard.js"></script>
<script language="JavaScript">
var clip = null;
function $(id) { return document.getElementById(id); }
function init() {
clip = new ZeroClipboard.Client();
clip.setHandCursor( true );
clip.addEventListener('load', function (client) {
debugstr("Flash movie loaded and ready.");
});
clip.addEventListener('mouseOver', function (client) {
// update the text on mouse over
clip.setText( $('myresource').value );
});
clip.addEventListener('complete', function (client, text) {
debugstr("Copied text to clipboard: " + text );
});
clip.glue( 'd_clip_button', 'd_clip_container' );
}
setTimeout(function(){
init();
},1500);
</script>
</body>
</html>

flash文件請自己到網(wǎng)上下載哈~
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
国产又黄又爽视频| 日韩精品黄色| 99中文视频在线| 动漫黄在线观看| 精品国产乱码一区二区| 亚洲欧洲精品成人久久奇米网| 欧美一区二区三区视频在线| 亚洲图区在线| 色欧美片视频在线观看在线视频| 成人性生交大片免费看中文| 免费看欧美一级片| 国产v在线观看| 中文字幕999| 欧美精品久久久久久久久久久| 天天色天天干天天| 永久555www成人免费| 精品一区二区三区不卡| 成本人h片动漫网站在线观看| 欧美福利影院| 无码精品在线观看| 最近中文字幕在线视频| 今天的高清视频免费播放成人| 亚洲国产成人在线播放| 精品久久久久一区二区国产| 久久天堂电影网| 福利片一区二区三区| 成年女人免费毛片视频永久| 超碰中文字幕在线观看| 激情内射人妻1区2区3区| 清纯唯美亚洲综合一区| 精品国产亚洲一区二区麻豆| 欧美久久综合性欧美| 在线国产小视频| 91制片厂在线| 欧美精品日韩一区| 97精品久久久| 国产性生活一级片| 最新中文字幕免费视频| 日本高清免费电影一区| 国产麻豆精品在线| 亚洲美女少妇撒尿| 亚洲欧美变态国产另类| 中文日韩在线观看| 三级国产在线观看| 日韩和欧美的一区| 毛片网站在线看| 欧洲熟妇精品视频| 紧缚奴在线一区二区三区| 国产精品成人无码专区| 久久亚洲精品国产亚洲老地址| 色婷婷亚洲精品| 国产男女猛烈无遮挡| 精品无码黑人又粗又大又长| 成人3d精品动漫精品一二三| 亚洲最新av| 欧美大片在线播放| 成人欧美精品一区二区| 亚洲一区二区三区四区| 天天干夜夜艹| 日韩色妇久久av| 亚洲丶国产丶欧美一区二区三区| 欧美成人久久电影香蕉| 国产久草在线| 97成人在线| 日本少妇久久久| 日韩视频一区二区三区| 亚洲欧美色图片| 午夜精品三级久久久有码| 精品国精品国产自在久国产应用| 一本久久a久久免费精品不卡| 68精品久久久久久欧美| 久久男人中文字幕资源站| 性欧美极品xxxx欧美一区二区| 人妻在线日韩免费视频| 韩国中文免费在线视频| 翁止熄痒禁伦短文合集免费视频| 欧美中文字幕在线播放| 欧美老少配视频| 亚洲综合激情六月婷婷在线观看| 欧美在线观看你懂的| 欧美日韩在线观看视频| 日韩一区二区三区在线观看视频| 三级黄色片免费看| 日韩一区自拍| 男女羞羞在线观看| 久久免费视频在线观看| 欧美日韩高清一区二区不卡| 日韩精品极品视频| 亚洲综合色成人| 欧美一区二区| 中国动漫在线观看完整版免费| 99久久99精品| 一区二区在线高清视频| 国外成人在线播放| 国产66精品| 乱一区二区av| 另类小说综合网| 亚洲精品手机在线| 国产欧美精品在线| 狠狠色狠狠色综合日日小说| 欧美video巨大粗暴18| 中文字幕中文字幕中文字幕亚洲无线| 精品一区二区国语对白| 日韩视频免费观看高清完整版| 欧洲熟妇精品视频| 男人添女荫道口女人有什么感觉| 自由的xxxx在线视频| 五月天亚洲综合| 国产视频1区| 99re这里只有精品视频首页| 久久久一本精品99久久精品| 久久影视一区二区| 久久一区二区三区超碰国产精品| 久久影院亚洲| 亚洲精品va在线观看| 成人综合在线视频| 正在播放木下凛凛xv99| 蜜桃久久一区二区三区| 精品成人久久| 一区二区三区高清在线| 欧美极品少妇xxxxⅹ高跟鞋| 久久久亚洲综合网站| 国产黄页在线观看| 国产精品久久久久久久久久齐齐| 国产无套丰满白嫩对白| 亚洲资源在线网| 精品一区二区三区毛片| 99中文字幕一区| 欧美在线观看天堂一区二区三区| 亚洲精品**不卡在线播he| 亚洲欧美在线第一页| 免费黄色小视频在线观看| av白虎一区| 久久久久久久久久免费视频| 好看的日韩精品| 国产成人a亚洲精品| 国内精品国产成人| av福利在线播放| 欧美资源在线观看| 欧美老**bbbb毛片| 精品国产91乱高清在线观看| 日本一区二区在线免费观看| 91精彩在线视频| 欧美日韩亚洲高清| 国产精品视频资源| 色av一区二区三区| 搡女人真爽免费午夜网站| 九九九九九精品| 在线成人视屏| 欧美日韩午夜爽爽| 日韩精品亚洲专区在线观看| 韩国理伦片一区二区三区在线播放| 九九九国产视频| 成年在线观看免费人视频| 亚洲天堂激情| 国内精品久久久久久不卡影院| 国产一区二区三区三州| 色狠狠色噜噜噜综合网| 欧美性猛片xxxxx免费中国| 日韩欧美国产另类| 国产一级片网址| 色综合视频网站| 亚洲综合久久久| 久久精品国产精品国产精品污| 久久综合久久八八| 成年人国产在线观看| 操操操日日日| 91成人在线免费| 91成人免费观看| 中文幕无线码中文字蜜桃| 欧美激情一区二区久久久| 国产日韩欧美精品电影三级在线| 中文字幕大看焦在线看| 亚洲国产视频一区二区三区| 一本久道久久综合多人| 久久久久久久成人| 国内精品久久久久久久97牛牛| 国色天香久久精品国产一区| 国产精品视频一区在线观看| 久久久久久久久爱| 影音先锋欧美激情| 成人一区二区视频| 国产99在线|亚洲| 久久综合色一综合色88| 日韩电影网在线| 337p亚洲精品色噜噜| 久久悠悠精品综合网| 国产ktv在线视频| 黄色91av| 成年人网站在线观看免费| 亚洲网友自拍| 免费在线观看不卡| 亚洲第一成肉网| 最新中文字幕日本| www.精品久久| 好吊的妞视频这里都有| 在线观看成人免费视频| 做爰高潮hd色即是空| 一区二区电影在线观看| 深夜福利视频网站| www国产亚洲精品| 操人真爽免费视频| 国精产品乱码一区一区三区四区| 夜夜春成人影院| 青青草av专区| 欧美日韩另类在线| 尤物免费看在线视频| 国产高清在线精品| 国产成人麻豆精品午夜在线| 日韩欧美国产大片| 韩国精品视频在线观看| 亚洲天堂男人的天堂| 亚洲综合一区二区精品导航| 欧美激情视频在线免费观看 欧美视频免费一| 在线观看黄色片| 欧美色另类天堂2015| 欧美 日韩 国产 成人 在线| 久久午夜精品一区二区| 91极品女神在线| 亚洲精品成人悠悠色影视| 一区二区三区四区| 国产精品二区三区| caopon在线免费视频| 成人免费一区| 女同互忝互慰dv毛片观看| 亚洲精品久久久久久久久久久久| 欧美激情麻豆| 亚洲国产精品字幕| 国产精品入口麻豆免费看| 国产精品高潮呻吟久久av无限| 高清不卡亚洲| 国产成人久久婷婷精品流白浆| 国产成人三级在线播放| 久久一级黄色片| 日韩欧美xxxx| 成人性做爰片免费视频| 最新国产精品久久| 成人h动漫免费观看网站| 亚洲一区二区三区自拍| 成人嫩草影院免费观看| 国模一区二区| 久久久久久久久久久久久91| 黄色在线观看网站| 女人成午夜大片7777在线| 宅男噜噜99国产精品观看免费| 亚洲特色特黄| 亚洲成a人片77777kkkk| 天堂99x99es久久精品免费| 日韩精品中文字幕在线观看| 乡村艳史在线观看| 亚洲精品人成网在线播放影院| eeuss鲁丝片eeuss影院| 日韩成人精品一区| eeuss影院www在线播放| 欧美激情资源网| 日韩精品视频中文字幕| 亚洲精品一区二区久| 91在线亚洲| av高清在线免费观看| 揉丰满老妇老女人的毛片| 亚洲国产精品大全| 国产中文一区二区| 国产a∨精品一区二区三区不卡| 国产美女www爽爽爽视频| 伊人网综合在线| 好吊视频一区二区三区| 欧美不卡在线播放| 亚洲成人av免费在线观看| 看女生喷水的网站在线观看| 国产乱了高清露脸对白| 免费在线观看污网站| 在线观看区一区二| 日本高清成人免费播放| 亚洲欧美卡通动漫| 成人黄色一级大片| 欧美国产日韩一区二区在线观看| 国产精品一区二区三区毛片淫片| 国产91av在线播放| 欧美私人情侣网站| 91精品国产乱码久久久久久久| 天天操天天干天天综合网| 国产精品电影一区二区三区| 日韩一区二区三区免费视频| 国产精品理论片在线观看| 欧美日韩成人在线观看| 国产精品久久久久无码av| 欧洲精品一区二区三区| 亚洲av无日韩毛片久久| 久久爱91午夜羞羞| 中文字幕在线观看你懂的| 欧美性受xxxxxx黑人xyx性爽| 久久精品福利| 色综合久久中文字幕| 97国产在线视频| 亚洲色图偷拍自拍| 高潮久久久久久久久久久久久久| 亚洲综合在线五月| 电影网一区二区| 91精品一区二区三区综合| 小嫩苞一区二区三区| a在线视频v视频| 少妇高潮在线观看| 91精品久久久久久久久久久久久| 伊人久久大香线蕉精品组织观看| 欧美成人免费高清视频| 色一情一乱一乱一91av| 亚洲精品系列| 亚洲男人天堂2024| 人日人天天爽| 国产又大又黄又粗又爽| 国产日本亚洲| 日韩免费av网站| 欧美日韩国产欧| 影音先锋男人每日资源站| 99精品视频在线观看免费播放| 亚洲999一在线观看www| 久久久久久久久久久久久久久久久| 久久偷看各类女兵18女厕嘘嘘| 亚洲第一免费网站| 99热在线网站| 国产人妖伪娘一区91| 欧美一级大片| 久久综合久久鬼色| 国产精品久久影院| 成人黄色大片在线观看| 97人人模人人爽视频一区二区| 久草在线资源福利站| 国产suv精品一区二区33|