如果没有这方面的代码,可否提供一个解决方案。就是在firefox下,如何实现一键复制的功能,点击一个按钮,就可以把图片保存到剪贴板中。求各位大侠指教一二。谢谢

解决方案 »

  1.   

    unction copy(oid)
    {
    var oControlRange = document.body.createControlRange();
    oControlRange.add(imgid,0);
    oControlRange.select();
    document.execCommand("Copy");
    }
      

  2.   

    to:jiangsheng(蒋晟.Net[MVP]) 
    感谢你提供的代码,但你的代码只可以在IE下运行,在firefox下却不能运行。
      

  3.   

    By default, JavaScript is not allowed to read or set your clipboard data for security and privacy reasons. http://kb.mozillazine.org/Granting_JavaScript_access_to_the_clipboard
      

  4.   

    to:jiangsheng(蒋晟.Net[MVP]) 
    有关firefox下对剪贴板的限制,我也知道,不过,现在网上不是有这么一段代码嘛
    function CopyToClipboard(meintext)
    {
        if (window.clipboardData) 
        {
            // the IE-manier
            window.clipboardData.setData("Text", meintext);
        }
        else if (window.netscape) 
        { 
            // dit is belangrijk maar staat nergens duidelijk vermeld:
            // you have to sign the code to enable this, or see notes below 
            netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
              
            // maak een interface naar het clipboard
            var clip = Components.classes['@mozilla.org/widget/clipboard;1']
                            .createInstance(Components.interfaces.nsIClipboard);
            if (!clip) return;
            //alert(clip);
            // maak een transferable
            var trans = Components.classes['@mozilla.org/widget/transferable;1']
                            .createInstance(Components.interfaces.nsITransferable);
            if (!trans) return;
               
            // specificeer wat voor soort data we op willen halen; text in dit geval
            trans.addDataFlavor('text/unicode');
               
            // om de data uit de transferable te halen hebben we 2 nieuwe objecten 
            // nodig om het in op te slaan
            var str = new Object();
            var len = new Object();
            var str = Components.classes["@mozilla.org/supports-string;1"]
                            .createInstance(Components.interfaces.nsISupportsString);
            var copytext=meintext;
            str.data=copytext;
            trans.setTransferData("text/unicode",str,copytext.length*2);
            var clipid=Components.interfaces.nsIClipboard;
            if (!clip) return false;
            clip.setData(trans,null,clipid.kGlobalClipboard);
        }
        else
        {
            return false;
        }    alert("Following info was copied to your clipboard: " + meintext);
        return false;
    }这段代码只可以复制文本,无法复制图片。按理说复制图片就是把类型转行一下,但是我对firefox下编程还不熟悉,看不懂XUL是怎么编程的,也不清楚他们之间是怎么调用的,很是郁闷。那位熟悉XUL的高手,告诉小弟一下吧,先谢了。
    请参考:
    http://developer.mozilla.org/en/docs/Using_the_Clipboardhttp://xulplanet.com/tutorials/mozsdk/clipboard.php