首页 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 copyTxt=document.getElementById(object).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){
alert('复制成功');
}
}
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('textinfo');</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