Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
需要关于使用ASP.Net或JavaScript将图像复制到网站剪贴板的帮助吗?_Javascript_Asp.net - Fatal编程技术网

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

需要关于使用ASP.Net或JavaScript将图像复制到网站剪贴板的帮助吗?,javascript,asp.net,Javascript,Asp.net,我需要一个关于复制图像到网站剪贴板的帮助。图像是动态创建的 我找到了两个解决办法 解决方案1: using System.Windows.Forms; Bitmap bitmapImage ; protected void buttonClipboard_Click(object sender, System.Web.UI.ImageClickEventArgs e) { MemoryStream memoryStream = new MemoryStream(imageByteAr

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

我找到了两个解决办法

解决方案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;
        }

函数CopyToClip(){
var imgControl=document.getElementById('imageContent');
imgControl.contentEditable='true';
无功控制范围;
if(document.body.createControlRange){
controlRange=document.body.createControlRange();
controlRange.addElement(imgControl);
controlRange.execCommand('Copy');
}
imgControl.contentEditable='false';
返回true;
}

这个java脚本在发布网站之前和之后可以很好地用于IE。但它在任何情况下都无法在Chrome&Mozilla中工作

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

请提出解决方案

无需用户手动编辑至少一个配置文件

用铬合金做的

如果您希望跨浏览器剪贴板支持,flash小部件是目前唯一真正可行的方法

无需用户手动编辑至少一个配置文件

用铬合金做的


如果您希望跨浏览器剪贴板支持,flash小部件是目前唯一真正可行的方法

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

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

Mozilla有一个很好的应用程序,但它的级别相当低,而且从安全角度来看,他们不太热衷于打开剪贴板。特别是关于“为网站启用剪贴板访问”:

Firefox没有内置这样的功能


然而,有一个有趣的问题。特别是,该方法似乎适合您的用例。提供了一个有趣的
onpaste
事件测试,但不幸的是,在剪贴板上的项目上没有任何内容,仅检索它们。

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

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

Mozilla有一个很好的应用程序,但它的级别相当低,而且从安全角度来看,他们不太热衷于打开剪贴板。特别是关于“为网站启用剪贴板访问”:

Firefox没有内置这样的功能

然而,有一个有趣的问题。特别是,该方法似乎适合您的用例。提供了一个有趣的
onpaste
事件测试,但不幸的是,剪贴板上的项目没有任何内容,只是检索它们