我们有一个程序想要将图像副本复制到剪贴板中,并使用javascript
/HTA
粘贴到HDD上的文件中。
以前有人做过这样的事吗?或者如何根据剪贴板中的信息在HDD上创建图像文件?
我们已经在使用以下文本,但它不适用于图像:
clipboardData.setData("Text", 'To Copy to clipboard');
clipboardData.getData("Text"); // To copy from clipboard
您可以在一些支持的浏览器中读取剪贴板数据:
是否可以使用Javascript在Firefox、Safari和Chrome中读取剪贴板?
问题是您将这些数据存储在用户的硬盘上。据我所知,由于安全原因,Javascript不会允许您访问用户的硬盘。解决这个问题的一种方法是将这些数据发送到运行php脚本的服务器,然后服务器将继续读取数据并将其保存到服务器的本地存储中。这个php脚本可以设置为返回保存文件时使用的完整路径。然后,您的javascript post方法可以使用此返回路径将其加载到浏览器中,浏览器将提示您的浏览器显示下载提示。然后用户可以下载该文件并将其保存到本地驱动器。
它非常复杂,但可以工作。
回复: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,所以我不能给你任何帮助。
看起来不可能从剪贴板粘贴图像。我们最终通过命令行使用了像Minicap
(http://www.softpedia.com/get/Multimedia/Graphic/Graphic-Capture/MiniCap.shtml)。