1

我目前正在开发一个 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 开发控制台会说它找不到文件。

感谢您的任何帮助,您可以提供。

4

1 回答 1

0

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

于 2013-01-30T07:11:27.700 回答