欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

[js]javascript与剪贴板交互

程序员文章站 2022-06-11 18:16:10
1.怎样操作剪贴板,从而实现复制、剪切与粘贴?同时判断剪贴板里边的数据是否是文本? if (!isclipboardformatavailable(cf_text...
1.怎样操作剪贴板,从而实现复制、剪切与粘贴?同时判断剪贴板里边的数据是否是文本?
if (!isclipboardformatavailable(cf_text)) 
return; 
if (!openclipboard(hwndmain)) 
return; 

hglb = getclipboarddata(cf_text); 
if (hglb != null) 

lptstr = globallock(hglb); 
if (lptstr != null) 

// call the application-defined replaceselection 
// function to insert the text and repaint the 
// window. 

replaceselection(hwndselected, pbox, lptstr); 
globalunlock(hglb); 


closeclipboard(); 

2.可以使用javascript获得windows剪贴板里的字符串吗?
比如在网页中实现点击一个文本框 就把剪贴板里的字符粘贴进去

当然可以
<form> 
<p> 
<input name=txtsearch value=""> 
<input type=button value=copy2clip onclick='javascript: var textrange=txtsearch.createtextrange(); textrange.execcommand("copy")'> 
</p> 
<p> 
<input name="copyto" type="text" id="copyto"> 
<input type=button value=pastefromclip onclick='javascript: var textrange=copyto.createtextrange(); textrange.execcommand("paste")'> 
</p> 
</form> 

3.javascript和剪贴板的交互 

一般可以这样将id为‘objid'的对象的内容copy到剪贴板

var rng = document.body.createtextrange();
        rng.movetoelementtext(document.getelementbyid("objid"));
        rng.scrollintoview();
        rng.select();
        rng.execcommand("copy");
        rng.collapse(false);
   settimeout("window.status=''",1800)

也可以用rng.execcommand("past");将剪贴板的内容粘到光标当前位置。

内容参见msdn 的textrange对象。

不过,copy到剪贴板的都是不带html标签的,所有html标签都将被过滤。


4.window.clipboarddata.getdata("text") //可以获得剪贴版的文字 
window.clipboarddata.setdata("text","你的内容") //向剪贴板里写文本信息

5.怎么判断剪贴板中的数据是否为字符串而不是图片或别的信息?

private sub command1_click() 
if clipboard.getformat(vbcftext) or clipboard.getformat(vbcfrtf) then 
msgbox "ok" 
end if 
end sub 





6.请问如何判断剪贴板中不为空? 


一、

eg 
判断windows剪贴板里是否为空,没有则读取图片到image中 
uses clipbrd; 

if clipboard.hasformat(cf_picture) then 
image1.picture.assign(clipboard); 
   二、

uses clipbrd; 

procedure tform1.button1click(sender: tobject); 
begin 
if clipboard.formatcount <= 0 then 
{ todo : 空 }; 
end; 



7.怎样确定剪贴板中的数据是否为图象? 


getformat 方法示例 
本示例使用 getformat 方法确定 clipboard 对象上数据的格式。要检验此示例,可将本例代码粘贴到一个窗体的声明部分,然后按 f5 键并单击该窗体。 

private sub form_click () 
' 定义位图各种格式。 
dim clpfmt, msg ' 声明变量。 
on error resume next ' 设置错误处理。 
if clipboard.getformat(vbcftext) then clpfmt = clpfmt + 1 
if clipboard.getformat(vbcfbitmap) then clpfmt = clpfmt + 2 
if clipboard.getformat(vbcfdib) then clpfmt = clpfmt + 4 
if clipboard.getformat(vbcfrtf) then clpfmt = clpfmt + 8 
select case clpfmt 
case 1 
msg = "the clipboard contains only text." 
case 2, 4, 6 
msg = "the clipboard contains only a bitmap." 
case 3, 5, 7 
msg = "the clipboard contains text and a bitmap." 
case 8, 9 
msg = "the clipboard contains only rich text." 
case else 
msg = "there is nothing on the clipboard." 
end select 
msgbox msg ' 显示信息。 
end sub