从剪贴板粘贴图片javascript
我们有一个程序,希望通过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