1

12.0 から FF 19.0 にアップグレードしたところ、クリップボードへのアクセスが完全に制限されており、クリップボードからデータを取得できません。

FF の以前のバージョンでは、次のように動作していました。

netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); var clip = Components.classes["@mozilla.org/widget/clipboard;1"].getService(Components.interfaces.nsIClipboard); var trans = Components.classes["@mozilla.org/widget/transferable;1"].createInstance(Components.interfaces.nsITransferable);

使用事例:

入力テキスト フィールドでは、複数行のテキストが貼り付けられたときに、セパレータとしてデフォルトの空白文字ではなく、選択したセパレータに置き換えたいと考えています。

例: test1\n test2\n test3

このテキストを FF の入力テキスト フィールドに貼り付けると、O/p が表示されます: test1 test2 test3 O/p が必要: test1,test2,test3 (セパレータが ',' の場合) test1;test;test3 (セパレータが ';' の場合)

要件:

貼り付けたテキストは、テキスト フィールドに貼り付ける前に変更する必要があり、唯一の方法はクリップボードにアクセスすることです。

次のリンクを試しましたが、役に立ちませんでした。

 https://support.mozilla.org/en-US/questions/948379

 http://stackoverflow.com/questions/14809226/cut-copy-and-paste-is-not-working-for-firefox-15-onwords

機能しなかったクリップボードを許可するようにユーザー設定を変更しようとしました。

user_pref("capability.policy.policynames", "allowclipboard");

user_pref("capability.policy.allowclipboard.sites", mydomain);

user_pref("capability.policy.allowclipboard.Clipboard.cutcopy", "allAccess");

フラッシュ オブジェクトを使用してクリップボード (ZClip または ZeroClipboard) にアクセスすることは想定されていません。

あなたの応答に感謝します。前もって感謝します。

4

1 に答える 1

1

この方法を試してください: http://jsfiddle.net/kUEBs/3/、firefox 23で動作します

<div style="border:1px solid grey;height:50px;" id="paste_ff" type="text" contenteditable></div>

<script type="text/javascript">
var pasteCatcher = document.getElementById('paste_ff');
document.getElementById('paste_ff').addEventListener('DOMSubtreeModified',function(){  
    if(pasteCatcher.children.length == 1){
        var text = pasteCatcher.innerHTML; console.log(text);   
        //text2  = text.replace(/\n/g, "___"); console.log(text);
        text2  = text.replace("<br>","____");
        if(text2 != text){
            pasteCatcher.innerHTML = text2;
            }
        }
    },false);
</script>
于 2013-08-13T14:16:13.883 に答える