[js]javascript與剪貼簿互動

來源:互聯網
上載者:User

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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.