用Flash AS3的Clipboard类实现js复制连接功能

大家都知道JS(clipboardData.setData)实现的剪切板复制功能,在IE浏览器里会弹出一个对话框询问是否允许访问,而firefox则干脆不允许自动复制,要用户手动来完成,实在是很不方便,所以这里特别用flash来通过外部取得连接地址,完成传递到剪切板的功能,免除了浏览器的不兼容性,也达到了良好的用户体验。
现在贴出主体类,并加以说明,大家可以直接拿走放在自己的项目里调用使用:


// CopyURL by orrincui
// new CopyURL("来吧:http://www.hexun.com","icon.gif")

package gouxychina.util.text
{
import flash.desktop.Clipboard;
import flash.desktop.ClipboardFormats;
import flash.display.Bitmap;
import flash.display.Loader;
import flash.display.Sprite;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.net.URLRequest;
import flash.filters.DropShadowFilter;
import flash.ui.Mouse;

public class CopyURL extends Sprite
{
private var loader:Loader;
private var image:Bitmap;
private var url:String;

/*
url:外部传递任何文本内容,这里指URL地址
skinPath:指定模仿按钮的图片地址
*/
public function CopyURL(url:String,skinPath:String)
{
this.url=url;
loadSkin(skinPath);

}
//给剪切板赋值
private function setClipboard():void{
Clipboard.generalClipboard.setData(ClipboardFormats.TEXT_FORMAT,this.url);
}

//加载图片按钮路径
private function loadSkin(skinPath:String):void{
loader=new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE,onSkinLoad);
loader.load(new URLRequest(skinPath));
}

//处理加载图片,赋予常用的三种鼠标事件,进行响应处理
private function onSkinLoad(event:Event):void{
image=Bitmap(loader.content);
addChild(image);
this.addEventListener(MouseEvent.CLICK,onMouseClick);
this.addEventListener(MouseEvent.MOUSE_OVER,onMouseOver);
this.addEventListener(MouseEvent.MOUSE_OUT,onMouseOut);
}

//可自行修改自己喜欢的鼠标状态
private function onMouseClick(me:MouseEvent):void{
setClipboard();
}
private function onMouseOver(me:MouseEvent):void{
Mouse.cursor="hand";
image.filters = [new DropShadowFilter()];
this.useHandCursor=true;
}
private function onMouseOut(me:MouseEvent):void{
Mouse.cursor="auto";
image.filters = [];
this.useHandCursor=false;
}
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue3中实现复制功能的自定义指令可以使用vue-clipboard3插件。这个插件是Vue3版本的vue-clipboard2插件的升级版,可以方便地实现将内容复制到剪贴板的功能。 要在Vue3中使用vue-clipboard3插件,首先需要安装它作为项目的依赖项。然后,在需要使用复制功能的组件中,使用v-copy指令来绑定相应的事件。 例如,可以在组件的模板中使用v-copy指令,并将要复制的内容作为指令的参数传入。然后,在指令被触发时,调用vue-clipboard3插件提供的API来实现复制功能。具体的代码可以似下面这样: ```html <template> <button v-copy="copyText">复制内容</button> </template> <script> import { useClipboard } from 'vue-clipboard3'; export default { data() { return { copyText: '要复制的内容', } }, directives: { copy: useClipboard, }, } </script> ``` 在这个示例中,当点击按钮时,v-copy指令会将copyText的值复制到剪贴板上。 使用vue-clipboard3插件可以方便地实现在Vue3中复制内容到剪贴板的功能。通过使用v-copy指令,我们可以将复制功能应用到单根组件上,实现与Vue2相似的效果。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [vue3.0 如何自定义指令](https://blog.csdn.net/ww_5211314/article/details/126935476)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Vue3自定义指令-10个常见的实用指令,带详细讲解,快拿去收藏!!!](https://blog.csdn.net/weixin_36813246/article/details/126864742)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值