需要有关使用 ASP.Net 或 JavaScript 将图像复制到网站剪贴板的帮助

Need help regards copy image to clipboard in website using ASP.Net or JavaScript?

本文关键字:复制 图像 网站 帮助 剪贴板 JavaScript Net ASP      更新时间:2023-09-26

我需要关于将图像复制到网站剪贴板的帮助。映像是动态创建的。

我找到了两个解决方案

解决方案 1 :

using System.Windows.Forms;
Bitmap bitmapImage ;
protected void buttonClipboard_Click(object sender, System.Web.UI.ImageClickEventArgs e)
{
    MemoryStream memoryStream = new MemoryStream(imageByteArray);             // Image byte array is the input
    bitmapImage = (Bitmap)System.Drawing.Image.FromStream(memoryStream);
    memoryStream.Flush();
    memoryStream.Close();
    Thread cbThread = new Thread(new ThreadStart(CopyToClipboard));
    cbThread.ApartmentState = ApartmentState.STA;
    cbThread.Start();
    cbThread.Join();
}
[STAThread]
protected void CopyToClipboard()
{
    if (bitmapImage != null)
    {
        //Clipboard.SetData(DataFormats.Bitmap, bitmapImage);
        Clipboard.SetImage(bitmapImage);
    }
}

在发布网站之前,这工作正常。发布后,这将不适用于任何网站浏览器,因为这里使用了 STAThread。一些网站表示,由于浏览器中的内部多线程处理,线程在已发布的网站上不起作用。

解决方案 2 :

<script type="text/javascript">
        function CopyToClip() {
            var imgControl = document.getElementById('imageContent');
            imgControl.contentEditable = 'true';
            var controlRange;
            if (document.body.createControlRange) {
                controlRange = document.body.createControlRange();
                controlRange.addElement(imgControl);
                controlRange.execCommand('Copy');
            }
            imgControl.contentEditable = 'false';
            return true;
        }

这个java脚本在发布网站之前和之后对IE工作正常。但它在任何情况下都无法在Chrome和Mozilla中使用。

我需要 Mozilla 和 Chrome 的一个解决方案。

请为此提出任何解决方案?

IE

是唯一支持这种剪贴板交互方法的浏览器。没有其他浏览器支持在剪贴板中放置图像。

对于文本,您必须使用基于 Flash 的解决方案来实现跨浏览器支持。你可以试试ZeroClipboard。

Mozilla有一个剪贴板指南,但它的水平相当低,从这个文档来看,由于安全问题,他们不太热衷于打开剪贴板。特别是关于"为网站启用剪贴板访问":

Firefox 中没有内置这样的功能。

但是,有一个有趣的 W3C API 规范用于剪贴板交互。特别是,setData方法似乎对您的用例很有希望。这个 SO 答案对onpaste事件进行了有趣的测试,但不幸的是,剪贴板上的项目上没有任何内容,只是检索它们。

如果没有用户手动编辑至少一个配置文件,它就无法在 Firefox 中真正工作。

在 chrome 中,除扩展程序外,它已被禁用。

如果你想要跨浏览器剪贴板支持,可悲的是,flash小部件是目前唯一真正可行的方法。