使用javascript / flash复制到剪贴板

时间:2013-01-29 22:53:58

标签: javascript flash clipboard

我目前正在开发一个PHP / HTML / Javascript项目,我试图在按下按钮时自动将文本复制到用户剪贴板。

我做了一些研究,发现这可以在IE中轻松完成,但是其他每个浏览器都不支持这个,所以嵌入了一个flash文件进行复制。但是,这似乎并没有奏效。

以下是执行复制的代码

function copyToClipboard()
{
    //Copy to clipbord if IE
    if (window.clipboardData && clipboardData.setData)
    {
        window.clipboardData.setData('text', 'I am copied');
    }
    else //other browsers
    {
        alert("other browser");
        var flashcopier = 'flashcopier';
        if(!document.getElementById(flashcopier)) {
            var divholder = document.createElement('div');
            divholder.id = flashcopier;
            document.body.appendChild(divholder);
        }
        document.getElementById(flashcopier).innerHTML = '';
        var divinfo = '<embed src="_clipboard.swf" FlashVars="clipboard='+encodeURIComponent('other browser copied')+'" width="0" height="0" type="application/x-shockwave-flash"></embed>';
        document.getElementById(flashcopier).innerHTML = divinfo;
    }
}

使用IE时似乎工作正常,但使用Chrome时,没有任何内容会被复制到剪贴板。 Chrome开发工具中没有任何错误。

我知道使用上面的代码嵌入了Flash文件,如果我将src更改为clipboard.swf_rubbish,那么chrome开发控制台会说它无法找到该文件。

感谢您提供的任何帮助。

1 个答案:

答案 0 :(得分:0)

该解决方案不再适用于Flash Player 10的发布。由于访问剪贴板数据的安全限制。您可以找到解决方法here