首頁 web前端 js教程 javaScript複製功能呼叫實作方案_基礎知識

javaScript複製功能呼叫實作方案_基礎知識

May 16, 2016 pm 05:46 PM
呼叫

複製代碼 代碼如下:

驗證碼:



最近都沒有什心情去寫博文,主要因為心煩的事情漸漸多起來了。
哎!離題了,回到這篇文章了。說到使用js實現點擊複製的功能,我下面想說的方法也是和網路上的大同小異的。 js實作是很簡單,最難的是相容問題,畢竟用IE以外的人還是有很多的。這裡,我也是根據網路上的相關資源來總結一下方法。

方法一,逐一判別處理法
方法很簡單也很容易懂,就是透過判斷客戶端瀏覽器類別,來執行不同的js程式碼來實現複製功能。雖然從理論上來說,這樣是行得通得。但是,事實並沒有我們想得那麼容易。因為我們並不太清楚一些瀏覽器下js複製程式碼的寫法,至少我所知道的也就是IE和FF。

如果只是相容IE和FF的話,那麼簡單得多了。這裡我使用一個網路上比較有名的判斷IE核的方法,13位元組法,這個也是我常用的。
複製程式碼 程式碼如下:

if("v"=="v") { //13個位元組
//這裡是IE核,執行的程式碼,親測相容IE8
}else{
//非IE核執行碼
}

這裡我寫個大概的實現複製的架構架,具體程式碼我不黏上來的,網路上可以很簡單就找到,給大家參考
複製程式碼 程式碼如下:

function clipBoard(object){
//取得object的值,即複製內容
var copyTxxx=docm. ).value;
//呼叫copy2Clipboar來實現瀏覽器,判斷及執行程式碼
if(copy2Clipboard(copyTxt)!= false){
alert('複製成功');
}
}
copy2Clipboard = function(txt){
if("v"=="v"){
//IE瀏覽器執行程式碼
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;
}
}

根據需要可以自行新增不同的判斷瀏覽器程式碼,實作該瀏覽器下的複製功能。一般情況下,依照IE > FF > opera/chrome>其他,這樣的順序來判斷。

方法二,flash間接處理法
原理很簡單,透過建立一個flash,將複製的內容以變數的方式傳遞給flash,flash再將內容複製到記憶體中,這樣就實現了複製的功能。只要支援flash,按理上是可以兼容絕大部分的瀏覽器的,這個方法是我今天看到的,也測試驗證了。

安裝及使用方法,可以在上面兩個網址上找到,E文版,中文版只有透過搜尋去找咯!
這裡我提供一下實作框架的簡單版,這裡有用到上面的實作方式。這裡有修改的,根據官方版說明方法,在單頁很容易就能實現該功能,但是在實際應用到某些CMS中,可能會遇到一些問題。什麼問題呢? IE核頁面會彈出 「該頁面已終止」。原因很簡單,就是js載入未完成就呼叫。竟然是IE的問題,那我們就可以使用判斷IE的方法,將IE獨立出來,其他核就使用flash方法實作。
複製程式碼 程式碼如下:

function checkClient(object){//判斷瀏覽器
var copyTxt=document.getElementById(object).value; //取得複製的內容
if("v"!="v "){
//這裡根據官方文件設定
//這裡設定flash位置,絕對相對都可以
ZeroClipboard.setMoviePath('ZeroClipboard.swf');
//建立複製對象
var clip = new ZeroClipboard.Client();
//設定手形
clip.setHandCursor(true);
//設定複製的內容
clip.setText(copyTxt);
//設定觸發物件
>clip.glue('d_clip_button');
}
}

這裡用來判斷是否為IE核,IE核將不使用flash處理法,直接使用複製機制
複製程式碼 程式碼如下:

//複製處理
function clipBoard(object){
var copyTxt=document.getElementById(object).value;
if(copy2Clipboard(copyTxt)!= false){ }
}
copy2Clipboard = function(txt){
if("v"=="v") { //判斷是否為IE瀏覽器
window.clipboardData.clearData( );
window.clipboardData.setData("Text",txt);
return true;
}
else{ //非IE核直接回傳
return true;
}
}

以上為第二種方法的最簡單設定方法,將程式碼放到之間即可不管是第一種,還是第二種方法都要在需要復制的頁面上添加下面兩行代碼
設置複製內容的文本域
複製代碼 程式碼如下:

onmouseout="checkClient('textinfo')" value="複製的內容" size="65" />

設定觸發物件按鈕
複製程式碼 程式碼如下:
複製位址


這是第二種方法才要新增的,設定偵測瀏覽器

複製程式碼 程式碼如下:
<script>checkClient('text🎜><BR> <<><script>checkClient('text🎜><BR> <<><script>checkClient('text🎜); /script> </script>


寫到這裡,大概的步驟就是這樣了,其中還有些id的名稱可以依需求修改。至少完整程式碼,可以參考官方的demo。 累了。
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

如何使用Python呼叫百度地圖API實作地理位置查詢功能? 如何使用Python呼叫百度地圖API實作地理位置查詢功能? Jul 31, 2023 pm 03:01 PM

如何使用Python呼叫百度地圖API實作地理位置查詢功能?隨著網路的發展,地理位置資訊的取得和利用越來越重要。百度地圖是一款非常常見且實用的地圖應用,它提供了豐富的地理位置查詢服務。本文將介紹如何使用Python呼叫百度地圖API實作地理位置查詢功能,並附上程式碼範例。申請百度地圖開發者帳號和應用程式首先,你需要擁有一個百度地圖開發者帳號,並建立一個應用程式。登入

原始碼探針:Python 中物件是如何被呼叫的? 原始碼探針:Python 中物件是如何被呼叫的? May 11, 2023 am 11:46 AM

楔子我們知道物件被創建,主要有兩種方式,一種是透過Python/CAPI,另一種是透過呼叫類型物件。對於內建類型的實例物件而言,這兩種方式都是支援的,例如列表,我們即可以透過[]創建,也可以透過list(),前者是Python/CAPI,後者是呼叫類型物件。但對於自訂類別的實例物件而言,我們只能透過呼叫類型物件的方式來創建。而一個物件如果可以被調用,那麼這個物件就是callable,否則就不是callable。而決定一個物件是不是callable,就取決於其對應的型別物件中是否定義了某個方法。如

PHP相機呼叫技巧:如何實作多鏡頭切換 PHP相機呼叫技巧:如何實作多鏡頭切換 Aug 04, 2023 pm 07:07 PM

PHP攝影機呼叫技巧:如何實現多攝影機切換攝影機應用已成為許多Web應用的重要組成部分,例如視訊會議、即時監控等等。在PHP中,我們可以使用各種技術來實現對攝影機的呼叫和操作。本文將重點放在如何實現多鏡頭的切換,並提供一些範例程式碼來幫助讀者更好地理解。攝影機呼叫基礎在PHP中,我們可以透過呼叫JavaScript的API來實現攝影機的呼叫。具體來說,我們

如何解決PHP開發中的外部資源存取和調用 如何解決PHP開發中的外部資源存取和調用 Oct 08, 2023 am 11:01 AM

如何解決PHP開發中的外部資源存取和調用,需要具體程式碼範例在PHP開發中,我們經常會遇到需要存取和調用外部資源的情況,例如API介面、第三方庫或其他伺服器資源。在處理這些外部資源時,我們需要考慮如何進行安全的存取和調用,同時確保效能和可靠性。本文將介紹幾種常見的解決方案,並提供相應的程式碼範例。一、使用curl函式庫進行外部資源呼叫curl是一個非常強大的開源函式庫

如何透過Python程式呼叫百度地圖API實現地圖展示功能? 如何透過Python程式呼叫百度地圖API實現地圖展示功能? Aug 02, 2023 pm 08:27 PM

如何透過Python程式呼叫百度地圖API實現地圖展示功能?隨著網路的快速發展,地圖應用成為了我們生活中不可或缺的一部分。而百度地圖作為國內最大的地圖應用之一,為我們提供了豐富的服務和API接口,可以很方便地實現地圖展示功能。本文將介紹如何透過Python程式呼叫百度地圖API來實現地圖展示功能,並給出對應的程式碼範例。首先,我們需要在百度開放平台上註冊一個

matlab如何呼叫m檔-matlab呼叫m檔的方法 matlab如何呼叫m檔-matlab呼叫m檔的方法 Mar 04, 2024 pm 01:49 PM

有很多朋友還不知道matlab如何呼叫m文件,所以下面小編就講解了matlab調用m文件的方法,有需要的小伙伴趕緊來看一下吧,相信對大家一定會有所幫助哦。 1.先開啟matlab軟體,在主介面中點選“開啟”,如下圖所示。 2、然後選擇一個需要打開的m文件,選擇打開,如下圖。 3.接著在編輯器中看m檔案的檔名和變數數目,如下圖。 4.可以在命令列中輸入m檔名後括號加變數值,就可以調用,如下圖所示。 5.最後就可以成功呼叫m文件,如下圖所示。上面就是小編為大家帶來的matlab如何呼叫m檔的全

如何使用Java呼叫WebService 如何使用Java呼叫WebService Dec 29, 2023 pm 02:32 PM

使用Java呼叫WebService的方法步驟,需要具體程式碼範例Web服務是一種基於Web的應用程式接口,透過網路提供各種功能。在Java開發中,我們經常需要使用Web服務來實現與其他系統的互動。本篇文章將介紹如何使用Java呼叫WebService,並提供具體的程式碼範例。一、了解WebServiceWebService是一種標準化的通訊協議,使用XML格式

Laravel實戰:如何正確呼叫控制器方法? Laravel實戰:如何正確呼叫控制器方法? Mar 10, 2024 pm 01:15 PM

Laravel實戰:如何正確呼叫控制器方法?在Laravel框架中,控制器(Controller)是扮演連接路由與模型之間的橋樑作用的重要元件。控制器中的方法是用來處理路由請求,並將資料傳遞給模型進行處理,然後再傳回給視圖展示給使用者。因此,正確呼叫控制器方法對於程式功能的實作是至關重要的。本文將介紹如何在Laravel中正確呼叫控制器方法,並提供具體的程式碼示

See all articles