JavaScript控制剪贴板[转]

      Javascript 2005-7-18 4:1
看到UBB代码[ code ]视窗的时候会有个"复制到剪贴板"的功能.我觉得很好用.
突然想到文件上传后,出现在"地址(路径)"位置的URL,给他加个复制的按钮吧.
研究了一下原来的代码..
定义函数
程序代码:
-------------------------------------------------------------------------
function CopyText(obj) {
ie = (document.all)? true:false
if (ie){
var rng = document.body.createTextRange(); //列出所有文本对象内容
rng.moveToElementText(obj);//移动文本范围以便范围的开始和结束位置能够完全包含给定元素的文本
rng.scrollIntoView();//scrollIntoView 将对象滚动到可见范围内,将其排列到
窗口顶部或底部
rng.select();//选择
rng.execCommand("Copy");//复制
rng.collapse(false);//不太明白..
}
}

-------------------------------------------------------------------------

然后用
程序代码:
<a href="javascript:CopyText(document.all.CODE_8223);">[ 复制代码到剪贴板 ]</a> </td></tr></table><div class="code_main" id="CODE_8223">需要复制的代码...</div>

它主要是选中要复制的文本对象,然后用exeCommand("Copy")来复制.
之后我照班了一个..结果发现<input type=text>里面的东西无法复制..只能选中外面的框..

又在网上找了一些资料...
==========================================
javascript Tip(1) 操作剪贴板
javascript可以轻松操作客户端剪贴板内容,不过只适用IE5以上浏览器
javascript可以使用window.clipboardData对象处理剪贴板内容
保存到剪贴板的方法 setData(param1, param2)
param1 :数据类型 text 或 URL等.
param2 :数据内容

从剪贴板读出数据的方法 getdata(param1)
清空数据的方法 clearData(param1)

下面是一个例子演示
程序代码:
-------------------------------------------------------------------------
<HTML>
<HEAD>
<TITLE>测试操作剪贴板</TITLE>
</HEAD>
<script>
function copyToClipboard()
{
var d=document.all("source").value;
window.clipboardData.setData('text', d);
}

</script>
<BODY >

<button onclick="copyToClipboard();">拷贝</button>
<input type="text" size=20 id="source" value="测试数据">
<br>
<button onclick="alert(window.clipboardData.getData('text'));">显示</button>
<button onclick="window.clipboardData.clearData('text');">清空</button>


</BODY>
</HTML>
-------------------------------------------------------------------------

下面是另一个例子实现页面中选中字符,并拖拉到文本区功能
注意其中的window.event.dataTransfer对象也可处理剪贴板内容,不过只能用在 drag-and-drop 操作中

程序代码:
-------------------------------------------------------------------------
<HTML>
<HEAD>
<TITLE>测试操作剪贴板2</TITLE>
</HEAD>
<script>

function transferDrop() {
window.event.srcElement.innerText = window.event.dataTransfer.getData("text");
window.event.returnvalue = false;
}
function transferDrag() {
window.event.dataTransfer.dropEffect = 'move';
window.event.returnvalue = false;
}

</script>
<BODY

<p id="mySource" ondragstart="window.event.dataTransfer.effectAllowed =
'move';">选择我们并把我们拖到下面的textarea</p>

<textarea id="myTarget" ondrop="transferDrop();"
ondragover="window.event.returnvalue = false;" ondragenter="transferDrag();">
</textarea>

</BODY>
</HTML>
-------------------------------------------------------------------------

发现用
window.clipboardData.setData("text",value)
window.clipboardData.getData("text")
window.clipboardData.clearData("text")
很容易控制剪贴板的内容了..
标签集:TAGS:
回复Comments() 点击Count()

回复Comments

{commentauthor}
{commentauthor}
{commenttime}
{commentnum}
{commentcontent}
作者:
{commentrecontent}