重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
function copyToClipboard(s){
创新互联公司是专业的昌图网站建设公司,昌图接单;提供做网站、成都网站制作,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行昌图网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!
if(window.clipboardData){
window.clipboardData.setData('text',s);
}else{
(function(s){
document.oncopy=function(e){
e.clipboardData.setData('text',s);
e.preventDefault();
document.oncopy=null;
}
})(s);
document.execCommand('Copy');
}
}
//用法举例:
copyToClipboard("要复制到剪贴板的文字");
可以使用clipboard插件解决这个问题。
github里直接搜索clipboard就可以找到了。
该插件并不依赖jquery。直接引入即可使用。
使用方法:
input id="foo" value="被复制的内容"
button class="btn" data-clipboard-target="#foo"点击复制/button
new Clipboard('.btn');
这里的.btn是元素的class属性,可以使用任意id或者class以及元素节点名称来实例化插件。
默认会为元素绑定click事件,点击的时候会触发。
data-clipboard-target参数指定被复制内容的元素。
如上例,点击按钮后会将input的值“被复制的内容”几个字复制到剪切板中。
更多使用方法可以自行github查询。
主要是用到了 window.clipboardData.setData("Text",copyText);
他主要有两个参数:第一个是设置要复制的是一段文本,第二个参数是要复制具体的内容,这个内容可以从文本框中或使用innerHTML获取。
简单的实例代码:
复制代码 代码如下:
script type="text/javascript"
function copyData() {
var copyText = document.getElementById("ctl00_cpRight_txtUrl").value;
window.clipboardData.setData("Text",copyText);
}
/script
asp:TextBox ID="txtUrl" runat="server" Height="30px" Width="349px"/asp:TextBox
input id="btnCopyUrl" type="button" value="复制URL到粘贴板" onclick="copyData()" /
注:ctl00_cpRight_txtUrl这个ID其实是txtUrl生成页面后自动生成的ID。
input type="text" id="copyText" value="" style="color:#fff; background:#fff; border-color:#fff;border: 0; position:absolute; top:-50px; left:0;" /
script type="text/jscript"
//复制文本
function copyText(str)
{
if(str.length 0)
{
$("#copyText").val(str);
//复制文本
var input = document.getElementById("copyText");
input.value = str; // 修改文本框的内容
input.select(); // 选中文本
document.execCommand("copy"); // 执行浏览器复制命令
//layer提示框
layer.closeAll('msg',{time:10000});
layer.msg('span style="color:red;"已复制:/span/br'+str);
}
}
/script
a href="jscript:copyText('要复制的内容')"要复制的内容/a
这是代码,这里的文本框不能设置隐藏,否则复制失效,所以我设置的样式让它在浏览器之外的地方,无法被看到
IE 是第一个支持剪贴板相关事件及通过 JavaScript 访问剪贴板数据的浏览器。IE 的实现成为了事实 标准,这是因为 Safari、Chrome、Opera 和 Firefox 都实现了相同的事件和剪贴板访问机制,后来 HTML5 也增加了剪贴板事件 。
(1) beforecopy:复制操作发生前触发。
(2) copy:复制操作发生时触发。
(3) beforecut:剪切操作发生前触发。
(4) cut:剪切操作发生时触发。
(5) beforepaste:粘贴操作发生前触发。
(6) paste:粘贴操作发生时触发。
这是一个比较新的控制剪贴板访问的标准,事件的行为及相关对象会因浏览器而异。在 Safari、 Chrome 和 Firefox 中,beforecopy、beforecut 和 beforepaste 事件只会在显示文本框的上下文菜 单(预期会发生剪贴板事件)时触发,但 IE 不仅在这种情况下触发,也会在 copy、cut 和 paste 事 件之前触发。无论是在上下文菜单中做出选择还是使用键盘快捷键,copy、cut 和 paste 事件在所有 浏览器中都会按预期触发。
通过 beforecopy、beforecut 和 beforepaste 事件可以在向剪贴板发送或从中检索数据前修改 数据。不过,取消这些事件并不会取消剪贴板操作。要阻止实际的剪贴板操作,必须取消 copy、cut 和 paste 事件。
剪贴板上的数据可以通过 window 对象(IE)或 event 对象(Firefox、Safari 和 Chrome)上的 clipboardData 对象来获取。在 Firefox、Safari 和 Chrome 中,为防止未经授权访问剪贴板,只能在剪 贴板事件期间访问 clipboardData 对象;IE 则在任何时候都会暴露 clipboardData 对象。为了跨浏 览器兼容,最好只在剪贴板事件期间使用这个对象。
clipboardData 对象上有 3 个方法:getData()、setData()和 clearData(),其中 getData() 方法从剪贴板检索字符串数据,并接收一个参数,该参数是要检索的数据的格式。IE 为此规定了两个选 项:"text"和"URL"。Firefox、Safari 和 Chrome 则期待 MIME 类型,不过会将"text"视为等价于 "text/plain"。
setData()方法也类似,其第一个参数用于指定数据类型,第二个参数是要放到剪贴板上的文本。 同样,IE 支持"text"和"URL",Safari 和 Chrome 则期待 MIME 类型。不过,与 getData()不同的是, Safari 和 Chrome 不认可"text"类型。只有在 IE8 及更早版本中调用 setData()才有效,其他浏览器会 忽略对这个方法的调用。
这里的 getClipboardText()函数相对简单,它只需要知道 clipboardData 对象在哪里,然后 便可以通过"text"类型调用 getData()。相应的,setClipboardText()函数则要复杂一些。在确定 clipboardData 对象的位置之后,需要根据实现以相应的类型(Firefox、Safari 和 Chrome 是 "text/plain",而 IE 是"text")调用 setData()。
如果文本框期待某些字符或某种格式的文本,那么从剪贴板中读取文本是有帮助的。比如,如果文 本框只允许输入数字,那么就必须检查粘贴过来的值,确保其中只包含数字。在 paste 事件中,可以 确定剪贴板上的文本是否无效,如果无效就取消默认行为,如下面的例子所示:
这个 onpaste 事件处理程序确保只有数字才能粘贴到文本框中。如果剪贴板中的值不符合指定模 式,则取消粘贴操作。Firefox、Safari 和 Chrome 只允许在 onpaste 事件处理程序中访问 getData() 方法。
因为不是所有浏览器都支持剪贴板访问,所以有时候更容易屏蔽一个或多个剪贴板操作。在支持 copy、cut 和 paste 事件的浏览器(IE、Safari、Chrome 和 Firefox)中,很容易阻止事件的默认行为。 在 Opera 中,则需要屏蔽导致相应事件的按键,同时阻止显示相应的上下文菜单。
window.clipboardData.setData('Text', 要复制的文本)复制 -------第一个参数还可以传URL window.clipboardData.getData('Text')粘贴 还有个window.clipboardData.clearData 对象.innerHTML ---对象内的html代码 对象.innerText ---对象内的文本