我們有一個程序,希望通過javascript
/HTA
將圖像複製到剪貼板中以粘貼到硬盤上的文件中。從剪貼板粘貼圖片javascript
有沒有人做過這樣的事情?或者如何從剪貼板中的信息創建硬盤上的圖像文件?
我們已經對文本使用以下,但它並不適用於圖像的工作:
clipboardData.setData("Text", 'To Copy to clipboard');
clipboardData.getData("Text"); // To copy from clipboard
我們有一個程序,希望通過javascript
/HTA
將圖像複製到剪貼板中以粘貼到硬盤上的文件中。從剪貼板粘貼圖片javascript
有沒有人做過這樣的事情?或者如何從剪貼板中的信息創建硬盤上的圖像文件?
我們已經對文本使用以下,但它並不適用於圖像的工作:
clipboardData.setData("Text", 'To Copy to clipboard');
clipboardData.getData("Text"); // To copy from clipboard
看起來不可能從剪貼板粘貼圖像。我們最終通過命令行使用了外部應用程序,如Minicap
(http://www.softpedia.com/get/Multimedia/Graphic/Graphic-Capture/MiniCap.shtml)。
你可進行讀取剪貼板數據,一些支持的瀏覽器:
Is it possible to read the clipboard in Firefox, Safari and Chrome using Javascript?
的問題在於你將這些數據存儲在用戶的硬盤上。由於安全原因,根據我的知識,Javascript將不允許您訪問用戶的硬盤驅動器。解決此問題的一種方法是將此數據發送到運行php腳本的服務器,然後該腳本將繼續讀取數據並將其保存到服務器的本地存儲。這個PHP腳本可以設置爲返回保存文件時使用的完整路徑。然後,您的javascript post方法可以使用此返回的路徑將其加載到瀏覽器中,該瀏覽器將提示您的瀏覽器顯示下載提示。然後用戶可以下載該文件並將其保存到本地驅動器。
它非常令人費解,但可以工作。
RE:HTA
HTA只適用於IE瀏覽器,是不是很受歡迎,所以你將有一些問題,找到適合您需要的確切任務的代碼資源。這是一些代碼,我發現用於讀取和寫入文件到磁盤
<!--
// CAREFUL -- no error checking
function readFile()
{
var fso, fileHandle, contents, yourfilename;
fso = new ActiveXObject("Scripting.FileSystemObject");
fileHandle = fso.OpenTextFile(document.editor.yourfilename.value, 1);
contents = fileHandle.ReadAll();
if (contents)
document.all("fileContents").value = contents;
fileHandle.close();
}
function writeFile()
{
var fso, fileHandle, yourfilename;
fso = new ActiveXObject("Scripting.FileSystemObject");
fileHandle = fso.CreateTextFile(document.editor.yourfilename.value, true);
fileHandle.write(document.all("fileContents").value);
fileHandle.close();
}
//-->
然後,你將不得不這段代碼使用window.clipboardData.getData功能用於獲取存儲剪貼板中的內容結合起來。我從來沒有做HTA,所以我不能給你任何幫助。
使用HTA允許您執行此操作。該頁面符合HTML應用程序,並不是一個真正的網頁。 – 2012-01-05 17:02:02
感謝您的回覆。我們一直在與HTA合作一段時間。我現在唯一需要的部分是從剪貼板獲取圖像。雖然答案非常準確。 – 2012-01-05 17:48:10