【问题标题】:Paste image from clipboard javascript从剪贴板 javascript 粘贴图像
【发布时间】:2012-12-24 15:23:57
【问题描述】:

我们有一个程序希望使用javascript/HTA 将图像副本复制到剪贴板以粘贴到 HDD 上的文件中。

以前有人做过类似的事情吗?或者如何根据剪贴板中的信息在硬盘上创建图像文件?

我们已经将以下内容用于文本,但不适用于图像:

clipboardData.setData("Text", 'To Copy to clipboard');
clipboardData.getData("Text");  // To copy from clipboard

【问题讨论】:

    标签: javascript image clipboard copy-paste hta


    【解决方案1】:

    您可以在某些支持的浏览器中读取剪贴板数据:

    Is it possible to read the clipboard in Firefox, Safari and Chrome using Javascript?

    问题在于您将这些数据存储在用户的硬盘上。据我所知,出于安全原因,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,所以我不能给你任何帮助。

    【讨论】:

    • 使用 HTA 可以做到这一点。该页面实际上是一个 HTML 应用程序,而不是真正的网页。
    • 感谢您的回复。我们与 HTA 合作已经有一段时间了。我现在唯一需要的部分是从剪贴板获取图像。虽然答案很准确。
    【解决方案2】:

    看起来无法从剪贴板粘贴图像。我们最终通过命令行使用了一个外部应用程序,如Minicap (http://www.softpedia.com/get/Multimedia/Graphic/Graphic-Capture/MiniCap.shtml)。

    【讨论】:

      猜你喜欢
      • 2013-07-08
      • 2010-10-04
      • 1970-01-01
      • 2013-02-21
      • 1970-01-01
      • 1970-01-01
      • 2012-05-02
      • 2018-06-14
      • 2017-06-06
      相关资源
      最近更新 更多