最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

javaScript復制功能調(diào)用實現(xiàn)方案

 更新時間:2012年12月13日 11:13:13   作者:  
說到使用js實現(xiàn)點擊復制的功能,我下面想說的方法也是和網(wǎng)上的大同小異的。js實現(xiàn)是很簡單,最難的是兼容問題,畢竟用IE以外的人還是有很多的
復制代碼 代碼如下:

驗證碼:<input type="text" id="code"/> <input type="button" value="復制" onclick="fuzhi()">
<script type="text/javascript">
function fuzhi(){
var codeVal=jQuery("#code").val();
alert(codeVal);
if (navigator.userAgent.toLowerCase().indexOf('ie') > -1) { //IE瀏覽器
clipboardData.setData('Text', codeVal);
alert("已經(jīng)復制到剪切板");
} else {
prompt("請復制:", codeVal);
}
// window.clipboardData.setData("Text",jQuery("#code").val());
}
</script>


最近都沒有什心情去寫博文,主要因為心煩的事情漸漸多起來了。
哎!離題了,回到這篇文章了。說到使用js實現(xiàn)點擊復制的功能,我下面想說的方法也是和網(wǎng)上的大同小異的。js實現(xiàn)是很簡單,最難的是兼容問題,畢竟用IE以外的人還是有很多的。這里,我也是根據(jù)網(wǎng)上的相關資源總結(jié)一下方法。

方法一,逐一判別處理法
方法很簡單也很容易懂,就是通過判斷客戶端瀏覽器類別,來執(zhí)行不同的js代碼來實現(xiàn)復制功能。雖然從理論上來說,這樣是行得通得。但是,事實并沒有我們想得那么容易。因為我們并不太清楚一些瀏覽器下js復制代碼的寫法,至少我所知道的也就是IE和FF。

如果只是兼容IE和FF的話,那么簡單得多了。這里我使用一個網(wǎng)上比較有名的判斷IE核的方法,13字節(jié)法,這個也是我常用的。
復制代碼 代碼如下:

if("\v"=="v") {//13個字節(jié)
//這里是IE核,執(zhí)行的代碼,親測兼容IE8
}else{
//非IE核執(zhí)行代碼
}

這里我寫個大概的實現(xiàn)復制的構(gòu)架,具體代碼我不粘上來的,網(wǎng)上可以很簡單就找到,給大家參考
復制代碼 代碼如下:

function clipBoard(object){
//獲取object的值,即復制內(nèi)容
var copyTxt=document.getElementById(object).value;
//調(diào)用copy2Clipboar來實現(xiàn)瀏覽器,判斷及執(zhí)行代碼
if(copy2Clipboard(copyTxt)!= false){
alert('復制成功');
}
}
copy2Clipboard = function(txt){
if("\v"=="v"){
//IE瀏覽器執(zhí)行代碼
window.clipboardData.clearData();
window.clipboardData.setData("Text",txt);
return true;
}else if(navigator.userAgent.indexOf("Firefox")>0){
//Firefox瀏覽器
return true;
}else if(window.google && window.chrome){
//chrome瀏覽器
return true;
}else{
alert("瀏覽器不支持");
return false;
}
}

根據(jù)需要可以自行添加不同的判斷瀏覽器代碼,實現(xiàn)該瀏覽器下的復制功能。一般情況下,根據(jù)IE > FF > opera/chrome>其他,這樣的順序進行判斷。

方法二,flash間接處理法
原理很簡單,通過創(chuàng)建一個flash,將復制的內(nèi)容以變量的方式傳遞給flash,flash再將內(nèi)容復制到內(nèi)存中,這樣就實現(xiàn)了復制的功能。只要支持flash,按理上是可以兼容絕大部分的瀏覽器的,這個方法是我今天看到的,也測試驗證了。

安裝及使用方法,可以在上面兩個網(wǎng)址上找到,E文版,中文版只有通過搜索去找咯!
這里我提供一下實現(xiàn)框架的簡單版,這里有用到上面的實現(xiàn)方式。這里有修改的,根據(jù)官方版說明方法,在單頁面很容易就能實現(xiàn)該功能,但是在實際應用到某些CMS中,可能會遇到一些問題。什么問題呢?IE核頁面會彈出 “該頁面已終止”。原因很簡單,就是js加載未完成就調(diào)用。竟然是IE的問題,那么我們就可以使用判斷IE的方法,將IE獨立出來,其他核就使用flash方法實現(xiàn)。
復制代碼 代碼如下:

function checkClient(object){//判斷瀏覽器
var copyTxt=document.getElementById(object).value; //獲取復制的內(nèi)容
if("v"!="v"){
//這里根據(jù)官方文檔設置
//這里設置flash位置,絕對相對都可以
ZeroClipboard.setMoviePath('ZeroClipboard.swf');
//創(chuàng)建一個復制對象
var clip = new ZeroClipboard.Client();
//設置手形
clip.setHandCursor(true);
//設置復制的內(nèi)容
clip.setText(copyTxt);
//設置觸發(fā)對象
>clip.glue('d_clip_button');
}
}

這里用于判斷是否為IE核,IE核將不使用flash處理法,直接使用復制機制
復制代碼 代碼如下:

//復制處理
function clipBoard(object){
var copyTxt=document.getElementById(object).value;
if(copy2Clipboard(copyTxt)!= false){
alert('復制成功');
}
}
copy2Clipboard = function(txt){
if("\v"=="v") { //判斷是否是IE瀏覽器
window.clipboardData.clearData();
window.clipboardData.setData("Text",txt);
return true;
}
else{ //非IE核直接返回
return true;
}

以上為第二種方法的最簡單設置方法,將代碼放到<head></head>之間即可不管是第一種,還是第二種方法都要在需要復制的頁面上添加下面兩行代碼
設置復制內(nèi)容的文本域
復制代碼 代碼如下:

<input type="text" id="textinfo"
onmouseout="checkClient('textinfo')" value="復制的內(nèi)容" size="65"/>

設置觸發(fā)對象按鈕
復制代碼 代碼如下:

<div id="d_clip_button" onclick="copyCode('textinfo')">復制地址</div>

這是第二種方法才要添加的,設置檢測瀏覽器
復制代碼 代碼如下:

<script>checkClient('textinfo');</script>

寫到這里,大概的步驟就是這樣了,其中還有些id的名稱可以按需要修改。至少完整代碼,可以參考官方的demo。
累了。

相關文章

最新評論

赫章县| 册亨县| 安仁县| 太仓市| 黄石市| 台山市| 云林县| 武宣县| 珠海市| 永康市| 新津县| 桐梓县| 福州市| 会泽县| 仪陇县| 盐山县| 桐庐县| 罗城| 六盘水市| 余江县| 泾阳县| 华阴市| 梅州市| 海丰县| 舞阳县| 宝山区| 富蕴县| 新平| 梧州市| 文水县| 札达县| 榕江县| 涟源市| 奉贤区| 思南县| 怀来县| 绩溪县| 大方县| 秦皇岛市| 阳朔县| 贵州省|