我们有一个程序想要将图像副本放入剪贴板,使用javascript
/ HTA
粘贴到HDD上的文件中。
有没有人之前做过这样的事情?或者如何从剪贴板中的信息在HDD上创建图像文件?
我们已经在文本中使用以下内容,但它不适用于图像:
clipboardData.setData("Text", 'To Copy to clipboard');
clipboardData.getData("Text"); // To copy from clipboard
答案 0 :(得分:1)
您可以在某些支持的浏览器中阅读剪贴板数据:
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所以我不能给你任何帮助。
答案 1 :(得分:0)
看起来无法从剪贴板粘贴图像。我们最终使用命令行使用了Minicap
(http://www.softpedia.com/get/Multimedia/Graphic/Graphic-Capture/MiniCap.shtml)等外部应用程序。