欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

GWT中復(fù)制到剪貼板 js+flash實現(xiàn)復(fù)制 兼容性比較好

 更新時間:2010年03月07日 12:34:56   作者:  
今天看到有個Google Code的項目,叫ZeroClipboard,大意是使用flash作為媒介,將內(nèi)容復(fù)制到剪貼板。這比用純javascript好,因為不同瀏覽器會出于安全的原因,有不同反應(yīng),例如IE會給出提示,有的瀏覽器不支持復(fù)制到剪貼板。

但是用flash就可以復(fù)制。例子就是VeryCd,看“復(fù)制選中的連接”按鈕是一個flash??磥韋lash的安全沙箱沒有限制將內(nèi)容復(fù)制到剪貼板 

 

 

但是也是有限制的: 

1 根據(jù)ZeroClipborad的人們說,這些flash必須通過網(wǎng)絡(luò)加載。

 Zero Clipboard Does Not Work From Local Disk


This is a security restriction by Adobe Flash Player. Unfortunately, since we are utilizing the JavaScript-to-Flash interface ("ExternalInterface") this only works while truly online (if the page URL starts with "http://" or "https://"). It won't work running from a local file on disk.

However, there is a way for you to edit your local Flash Player security settings and allow this. Go to this website:

http://www.macromedia.com/support/documentation/en/flashplayer/help/settings_manager04a.html

And add the path to your local "ZeroClipboard.swf" file to the trusted files list, or try the "allow all" option.


 

2 flash雖然提供復(fù)制功能,但是前提是要通過用戶的一次點擊。意思就是不能在javascript中通過函數(shù)的方式setText就復(fù)制到剪貼板,而是調(diào)用了這個setText函數(shù)后,用戶的鼠標(biāo)在flash上有了一次點擊,才可以。

This library is fully compatible with Flash Player 10, which requires that the clipboard copy operation be initiated by a user click event inside the Flash movie.  

這里和使用flash上傳文件的swfupload有同樣的問題。 


使用ZeroClipboard,可以將網(wǎng)頁內(nèi)容復(fù)制到剪貼板。但是ZeroClipboard沒有GWT封裝,我們項目是用GWT的,所以就學(xué)著swfupload的GWT封裝,把ZeroClipboard也封裝成GWT可以調(diào)用的形式。

1 先封裝了一個zeroclipboard.jar 

2 項目中使用的是GXT控件庫,為了和控件緊密結(jié)合,寫了一個ZClipboardBinder類,將兩者結(jié)合起來

3 使用方法見下(Zeroclipboard_test.java)

復(fù)制代碼 代碼如下:

package zero.clipboard.test.client;
import java.util.Date;
import zero.clipboard.test.client.ZClipboardBinder.ClipboardListener;
import com.extjs.gxt.ui.client.widget.LayoutContainer;
import com.extjs.gxt.ui.client.widget.button.Button;
import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.user.client.ui.RootPanel;
/**
* Entry point classes define <code>onModuleLoad()</code>.
*/
public class Zeroclipboard_test implements EntryPoint {
public void onModuleLoad() {
LayoutContainer c = new LayoutContainer();
c.setSize(400, 300);
Button btn = new Button("Copy Hello World");
// 將控件和ZeroClipboard綁定
// ZClipboardBinder.bind(btn, "Hello World");
ZClipboardBinder.bind(btn, new ClipboardListener() {
@Override
public String prepareCopy() {
return (new Date()).toString();
}
});
c.add(btn);
RootPanel.get().add(c);
}
}

相關(guān)下載都在附件中了。 

attachment.zip

示意結(jié)果

 
點擊按鈕后——其實是點擊了上面的flash,使用ctrl+v,就能看到結(jié)果。


現(xiàn)在發(fā)現(xiàn)有很多有意義的功能都不能用javascript實現(xiàn),例如多文件上傳和復(fù)制到剪貼板,都是通過flash做中介,“曲線”實現(xiàn)的 ,不知道最后HTML5有沒有解決這些問題,不用我們兜兜轉(zhuǎn)轉(zhuǎn)。
Zero Clipboard 開源的 JavaScript+flash 復(fù)制庫類 

您可能感興趣的文章:

相關(guān)文章

  • 基于JavaScript寫一款EJS模板引擎

    基于JavaScript寫一款EJS模板引擎

    這篇文章主要介紹了基于JavaScript寫一款EJS模板引擎,基本語法就是定義render函數(shù),接收html字符串,和data參數(shù),下面其他具體介紹,需要的朋友可以參考一下
    2022-02-02
  • JavaScript事件方法(實例講解)

    JavaScript事件方法(實例講解)

    下面小編就為大家?guī)硪黄狫avaScript事件方法(實例講解)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-06-06
  • 詳解JS中定時器setInterval和setTImeout的this指向問題

    詳解JS中定時器setInterval和setTImeout的this指向問題

    在js中setTimeout和setInterval都是用來定時的一個功能,下面這篇文章主要給介紹了JS中setInterval和setTImeout的this指向問題,文中通過示例介紹的很詳細(xì),有需要的朋友可以參考借鑒,一起來看看吧。
    2017-01-01
  • JavaScript在控件上添加倒計時功能的實現(xiàn)代碼

    JavaScript在控件上添加倒計時功能的實現(xiàn)代碼

    JavaScript在控件上添加倒計時功能,主要原理是利用控件的setEnable(true)/setEnable(false)來進(jìn)行設(shè)置控件的可用與不可用狀態(tài),實現(xiàn)過程非常簡單,需要的的朋友參考下吧
    2017-07-07
  • 處理JavaScript值為undefined的7個小技巧

    處理JavaScript值為undefined的7個小技巧

    這篇文章主要介紹了處理JavaScript值為undefined的7個小技巧,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-07-07
  • JS如何去掉小數(shù)末尾多余的0,并且最多保留兩位小數(shù)

    JS如何去掉小數(shù)末尾多余的0,并且最多保留兩位小數(shù)

    這篇文章主要介紹了JS如何去掉小數(shù)末尾多余的0,并且最多保留兩位小數(shù)問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • js實現(xiàn)iGoogleDivDrag模塊拖動層拖動特效的方法

    js實現(xiàn)iGoogleDivDrag模塊拖動層拖動特效的方法

    這篇文章主要介紹了js實現(xiàn)iGoogleDivDrag模塊拖動層拖動特效的方法,實例分析了javascript操作拖動層的技巧,需要的朋友可以參考下
    2015-03-03
  • 可多次使用的仿126郵箱選項卡的源碼

    可多次使用的仿126郵箱選項卡的源碼

    可多次使用的仿126郵箱選項卡的源碼...
    2007-10-10
  • JS實現(xiàn)碰撞檢測效果

    JS實現(xiàn)碰撞檢測效果

    這篇文章主要為大家詳細(xì)介紹了JS實現(xiàn)碰撞檢測效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • js實現(xiàn)無限級樹形導(dǎo)航列表效果代碼

    js實現(xiàn)無限級樹形導(dǎo)航列表效果代碼

    這篇文章主要介紹了js實現(xiàn)無限級樹形導(dǎo)航列表效果代碼,通過一個封裝的JS類實現(xiàn)無限樹形導(dǎo)航的效果,非常簡單實用,需要的朋友可以參考下
    2015-09-09

最新評論