① 如何利用js实现复制/粘贴功能
1、最基本的复制
代码
<script language="javaScript">
function readTxt()
{
alert(window.clipboardData.getData("text"));
}
function setTxt()
{
var t=document.getElementById("txt");
t.select();
window.clipboardData.setData('text',t.createTextRange().text);
}
</script>
<input name="txt" value="测试">
<input type="button" value="复制" onclick="setTxt()">
<input type="button" value="读取" onclick="readTxt()">
2、扩展复制:复制表格
Java代码
<INPUT TYPE="button" value="选中测试表格" onclick="CopyTable()">
测试
<TABLE border="1" id="oTable">
<TR>
<TD>测试表格</TD>
<TD>测试表格</TD>
</TR>
<TR>
<TD>测试表格</TD>
<TD>测试表格</TD>
</TR>
</TABLE>文字
<SCRIPT LANGUAGE="JavaScript">
<!--
function CopyTable()
{
var txt = document.body.createTextRange();
txt.moveToElementText(document.getElementById('oTable'));
txt.select();
}
//-->
</SCRIPT>
、兼容IE,firefox等浏览器的复制
Java代码
<script>
function ToClipboard(txt) {
if(window.clipboardData) {
window.clipboardData.clearData();
window.clipboardData.setData("Text", txt);
} else if(navigator.userAgent.indexOf("Opera") != -1) {
window.location = txt;
} else if (window.netscape) {
try {
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
} catch (e) {
alert("被浏览器拒绝!\n请在浏览器地址栏输入'about:config'并回车\n然后将'signed.applets.codebase_principal_support'设置为'true'");
}
var clip = Components.classes['@mozilla.org/widget/clipboard;1'].createInstance(Components.interfaces.nsIClipboard);
if (!clip)
return;
var trans = Components.classes['@mozilla.org/widget/transferable;1'].createInstance(Components.interfaces.nsITransferable);
if (!trans)
return;
trans.addDataFlavor('text/unicode');
var str = new Object();
var len = new Object();
var str = Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString);
var text = txt;
str.data = text;
trans.setTransferData("text/unicode",str,text.length*2);
var clipid = Components.interfaces.nsIClipboard;
if (!clip)
return false;
clip.setData(trans,null,clipid.kGlobalClipboard);
}
}
</script>
<button onclick="ToClipboard('你好!');">复制文本“你好!”</button>
<textarea id="test"></textarea>
② JS实现内容复制功能
复制是一个使用频率特别高的操作,在网页中,一般可以选中要复制的内容,使用快捷键 ctrl+c 将内容复制到剪贴板。除了使用系统提供的快捷方式复制网页内容,我们还可以用JS实现复制,这得益于document的 execCommand('') 命令。
实现整个复制功能,需要以下三个步骤:
大部分HTML元素都有innerText和innerHTML两个属性,innerText属性返回文本内容,innerHTML属性返回标签元素。我们可以创建一个函数,用于获取需要返回的内容:
上面的selectText函数接收一个DOM元素,返回DOM元素的innerText属性值。
我们可以通过表单元素的select()方法选中内容,表单元素因为textarea限制少于input,所以推荐使用textarea。我们可以动态创建一个textarea元素,将textarea的value属性值设置为上面的innerText属性值,再执行textarea的select方法选中。
上面实现了选中,下面就可以实现复制功能了。
最后一步就可以用execCommand('')实现复制了,它可以复制浏览器中选中的文本,比如说上面被textarea选中的文本,复制之后记得移除textarea。
第二步和第三步可以优化一下,创建一个函数,函数参数设置为第一步需要复制的文本,返回值为复制的结果。
完整JS示例如下:
可以将上面的完整JS示例写入一个JS文件,将JS文件引入HTML中,通过JS点击事件来执行复制函数。
效果图:
③ JS如何实现手机复制功能
JS是无法读取剪切板数据的,也就是说JS无法实现这个功能。
实现这样的功能需要借助一falsh插件来完成,可以找下falsh网页复制插件,这些插件都会有相关的代码,可以直接使用。
④ 求大神帮忙提取DZ论坛 点击复制链接 弹出复制窗口的JS代码。
<body>
<script>
//因为alert有阻塞效果,当一个alert显示的时候,其他的alert都要等待
//所以在window里面放置一个消息队列。
window.msgQueue = [];
//alert开关,表示当前是否有alert显示。
window.alert_on = false;
//重写alert函数
window.alert = function(){
//如果alert('_no_message_')被本函数内部使用
//所以忽略alert('_no_message_')
if(arguments[0]!='_no_message_'){
window.msgQueue[window.msgQueue.length] = arguments[0];
}
//如果当前alert正在被调用,则返回
if(window.alert_on==true){
return;
}
else{
//如果得不到alert_div,则说明弹出层和遮盖层还没有构建,则构建他们
if(!document.getElementById('alert_div')){
var div = document.createElement('div');
div.id = 'alert_div';
with(div.style){
height = '50px';
width = '200px';
position = 'absolute';
left = '300px';
top = '300px';
backgroundColor = 'lightyellow';
border = 'solid #ccc 1px';
zIndex = '1000';
display = 'none';
margin = '0px';
padding = '0px';
}
//关闭弹出层函数
window.closeAlert = function(){
document.getElementById('alert_div').style.display = 'none';
document.getElementById('alert_mask').style.display = 'none';
window.alert_on = false;
status = 'queue length: ' + window.msgQueue.length;
if(window.msgQueue.length>0){
window.alert('_no_message_');
}
}
div.innerHTML = "<div style='font-size: 9pt;height: 25px; padding: 5px; background-color: dodgerblue; color: #fff;' align='right'><a style='color: #fff;text-decoration: none;' alt='Close' href='#' onclick = 'closeAlert();'>X</a></div><div style='padding: 5px;' id='alert_text_div'></div>"
var mask = document.createElement('div');
mask.id='alert_mask';
with(mask.style){
height = document.body.clientHeight;
width = document.body.clientWidth;
position = 'absolute';
left = '0';
top = '0';
backgroundColor = '#ccc';
zIndex = 999;
display = 'none';
filter = 'alpha(opacity=50)';
}
document.body.appendChild(div);
document.body.appendChild(mask);
}
if(window.msgQueue.length>0){
var div = document.getElementById('alert_div');
var mask = document.getElementById('alert_mask');
var txtDiv = document.getElementById('alert_text_div');
div.style.display = '';
mask.style.display = '';
window.alert_on = true;
//取消息队列第一条显示出来。
txtDiv.innerText = window.msgQueue.shift();
}
}
}
</script>
<div style=" width:100px; height:100px; border:1px solid #000;"><a href="#" onclick="alert('你点了我。');">点我测试</a></div>
<script>
//test case.
</script>
</body>
这是修改alert的代码,剩下的就是布局问题了,你把布局布得像图片那样,就行了!
⑤ JS点击超链接复制代码
<a id="Fcode" href="javascript:window.clipboardData.setData('Text',document.getElementById('Fcode').innerHTML);alert('已复制到剪贴板!');">复制代码</a>hk
⑥ JS里面如何加入点击复制代码
复制,一般都是讲一个元素的value或是html赋值到另一个元素的value或是html。下面是简单代码实现:
html部分:
<inputtype="button"value="显示div1的内容"id="btn"/>
<divid="div1"style="display:none">div1</div>
<divid="div2"style="display:none">div2</div>
<divid="show-box"></div>
js部分
vardiv1=document.getElementById("div1");
vardiv2=document.getElementById("div2");
varbtn=document.getElementById("btn");
varshowBox=document.getElementById("show-box");
//方法一:将div中的值赋值到一个用于显示的框中(showBox)
varflag=true;
btn.onclick=function(){
if(flag){
showBox.innerHTML=div1.innerHTML;
btn.value="显示div2的内容"
flag=false;
}else{
showBox.innerHTML=div2.innerHTML;
btn.value="显示div1的内容"
flag=true;
}
}
//方法二:用按钮控制div1,div2的显示隐藏
varflag=true;
btn.onclick=function(){
if(flag){
div1.style.display="block";
div2.style.display="none";
btn.value="显示div2的内容"
flag=false;
}else{
div2.style.display="block";
div1.style.display="none";
btn.value="显示div1的内容"
flag=true;
}
}