1

現在、PHP/HTML/Javascript プロジェクトに取り組んでおり、ユーザーがボタンを押したときに、テキストをユーザーのクリップボードに自動的にコピーしようとしています。

いくつかの調査を行ったところ、これは IE で簡単に実行できることがわかりましたが、他のすべてのブラウザーはこれをサポートしていないため、代わりにコピーを行うフラッシュ ファイルが埋め込まれています。ただし、これは機能していないようです。

以下は、コピーを行うコードです

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 を使用している場合はクリップボードに何もコピーされません。クロム開発ツールにもエラーはありません。

上記のコードを使用してフラッシュファイルが埋め込まれていることはわかっています.srcを変更するとclipboard.swf_rubbish、chrome開発コンソールはファイルが見つからないと言います.

ご協力いただきありがとうございます。

4

1 に答える 1

0

このソリューションは、Flash Player 10 のリリースでは機能しなくなりました。クリップボード データへのアクセスに関するセキュリティ制限のためです。ここで回避策を見つけることができます

于 2013-01-30T07:11:27.700 に答える