[js]javascript与剪贴板交互

2023年 4月 16日 66.6k 0

1.怎样操作剪贴板,从而实现复制、剪切与粘贴?同时判断剪贴板里边的数据是否是文本? if(!IsClipboardFormatAvailable(CF_TEXT)) return; if(!OpenClipboard(hwndMain)) return; hglb=GetClipboardData(CF_TEXT); if(h

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 

相关文章

Oracle如何使用授予和撤销权限的语法和示例
Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
社区版oceanbase安装
Oracle 导出CSV工具-sqluldr2
ETL数据集成丨快速将MySQL数据迁移至Doris数据库

发布评论