-2

Firefoxにnetscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect')を使用しています。

エディターのブラウザー互換性の問題に直面しています。HTMLエディターを使用しています。

IEでは、すべてのバージョンのカット、コピー、貼り付けがこのエディターで機能します。

mozillaに関して言えば、これらは一部のバージョンまでしか機能しません。Firefox15onwordsでは機能しません。

右クリックすると、切り取り、コピー、貼り付けが無効になります。ショットカットキーも機能していませんが。

誰もがこれを知ることができますか?上記の問題をできるだけ早く明確にしてください。

このコピーには、選択したテキストを使用しています。これのサンプルコードは次のとおりです。

PasteText.prototype.execute = function()
{

netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
var clip = Components.classes['@mozilla.org/widget/clipboard;1'].createInstance(Components.interfaces.nsIClipboard);
if (!clip) {
    return;
}
var trans = Components.classes['@mozilla.org/widget/transferable;1'].createInstance(Components.interfaces.nsITransferable);
if (!trans) {
    return;
}
trans.addDataFlavor('text/unicode');
clip.getData(trans,clip.kGlobalClipboard);
var str = new Object();
var len = new Object();
try {
    trans.getTransferData('text/unicode',str,len);
}
catch(error) { return; }
if (str) {
    if (Components.interfaces.nsISupportsWString) {
        str=str.value.QueryInterface(Components.interfaces.nsISupportsWString);
    } else if (Components.interfaces.nsISupportsString) {
        str=str.value.QueryInterface(Components.interfaces.nsISupportsString);
    } else {
        str = null;
    }
}

if (str) {
    var code = str.data.substring(0,len.value / 2);
}
code = code.replace( /\n/g, '<br/>' ) ;
window.activeEditor._inserthtml( code ) ;
};

ありがとうございました...

4

3 に答える 3

0

引用符なしで about:config を使用して、いくつかの権限を追加する必要があります。

user_pref("capability.policy.policynames", "allowclipboard"); user_pref("capability.policy.allowclipboard.sites", " https://www.mozilla.org "); user_pref("capability.policy.allowclipboard.Clipboard.cutcopy", "allAccess"); user_pref("capability.policy.allowclipboard.Clipboard.paste", "allAccess");

于 2013-02-20T11:29:46.380 に答える
0

Mozilla のサポート ページから;

Firefox 17 以降、特権コードは Web ページで実行できなくなりました。Firefox 15 では、設定を手動で変更して有効にする必要があります。そのような機能を拡張機能に組み込むことができます。出発点: https://developer.mozilla.org/en-US/docs/Code_snippets/Interaction_between_privileged_and_non-privileged_pa​​ges

初心者向け: https://developer.mozilla.org/en-US/docs/XUL_School/Getting_Started_with_Firefox_Extensions

詳細: https://developer.mozilla.org/en-US/docs/Bypassing_Security_Restrictions_and_Signing_Code

ここでは、数年間続いている主題に関する (やや白熱した) 議論を見つけることができます :)

于 2013-02-11T09:33:51.170 に答える
0

回避策としてZeroClipboardをお勧めします。ID で要素を選択し、同じサイズの透明なフラッシュ ビデオを重ねることができます。Flash を使用すると、クリップボードにアクセスできるため、切り取り/コピーを行うことができます。iThings がそれほど気にならないのであれば、まともな選択肢かもしれません。

ZeroClipboard には、Flash バージョン 9 以降が必要です。そのため、 swfobjectを使用して、最初に必要なバージョンを確認します。

if (swfobject.hasFlashPlayerVersion('9')) {
    $.getScript('/js/ZeroClipboard.min.js', function(){
         ZeroClipboard.setMoviePath('/swf/ZeroClipboard10.swf');
         var clip = new ZeroClipboard.Client;
         clip.setCSSEffects(true);
         clip.setHandCursor(true);
         clip.glue('copy-elem-id', 'copy-elem-id-container');
         clip.addEventListener('onMouseDown', function(e){
             var copyText = $('#textbox-id').text();
             clip.setText(copyText);
         });
    });
}
于 2013-02-11T09:45:41.797 に答える