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 required: 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");

我不应该使用 Flash 对象来访问剪贴板(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 回答