[js]javascript与剪贴板交互

 更新时间:2007年07月27日 15:49:59   作者:  
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 

相关文章

  • 详解SQL Server 中 JSON_MODIFY 的使用

    详解SQL Server 中 JSON_MODIFY 的使用

    SQL Server 从 2016 开始支持了一些 JSON操作,最近的项目里也是好多地方字段直接存成了 JSON,需要了解一下怎么在SQL Server 中操作 JSON.这篇文章主要介绍了SQL Server 中 JSON_MODIFY 的使用,需要的朋友可以参考下
    2019-11-11
  • SQL实现模糊查询的四种方法总结

    SQL实现模糊查询的四种方法总结

    本文主要介绍了SQL实现模糊查询的四种方法总结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07
  • 数据库表的创建、管理和数据操作(实验一)

    数据库表的创建、管理和数据操作(实验一)

    这篇文章主要介绍了数据库中表的创建、管理和数据操作,感兴趣的小伙伴可以参考一下
    2015-08-08
  • SQLSERVER 拼接含有变量字符串案例详解

    SQLSERVER 拼接含有变量字符串案例详解

    这篇文章主要介绍了SQLSERVER 拼接含有变量字符串案例详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-09-09
  • SQL Server 2016 CTP2.2安装配置方法图文教程

    SQL Server 2016 CTP2.2安装配置方法图文教程

    这篇文章主要为大家详细介绍了SQL Server 2016 CTP2.2安装配置方法图文教程 ,感兴趣的小伙伴们可以参考一下
    2016-07-07
  • SQL中LIKE和REGEXP简单对比分析

    SQL中LIKE和REGEXP简单对比分析

    这篇文章主要介绍了SQL中LIKE和REGEXP简单对比,在MySQL中,LIKE和REGEXP都可以用于模式匹配,但是它们的语法、性能和应用场景有所不同,通常来说,在简单的字符串模糊匹配场景下,使用LIKE更加高效;而在需要更复杂的模式匹配时,使用REGEXP更加灵活
    2023-09-09
  • sqlserver数据库导入数据操作详解(图)

    sqlserver数据库导入数据操作详解(图)

    本文主要介绍的是怎么使用Microsoft SQL Server Management Studio导入数据,大家参考使用吧
    2014-01-01
  • sqlserver四舍五入使用round函数及cast和convert函数

    sqlserver四舍五入使用round函数及cast和convert函数

    大家在遇到sqlserver四舍五入除了用round函数还有没有其他方法呢?下面小编给大家介绍使用cast和convert函数,感兴趣的朋友一起学习吧
    2015-11-11
  • sql 取两值之间的数据方法(例:100-200之间的数据)

    sql 取两值之间的数据方法(例:100-200之间的数据)

    这里只列举3种我测试的方法,还有别的方案就由高手补上了,3种方案的效率也不竞相同,我一直认为not in效率不好,但在这里使用not in速度最快,请高手补充说明,谢谢
    2010-05-05
  • windows sql server如何彻底卸载干净

    windows sql server如何彻底卸载干净

    很多人在面对SQL Server出现的一些无法解决的问题时,会选择卸载重装,但是SQL Server卸载不干净的话,后续安装过程会出现很多问题,下面这篇文章主要给大家介绍了关于windows sql server如何彻底卸载干净的相关资料,需要的朋友可以参考下
    2022-10-10

最新评论