軟膏!アドオンでMozilla のValidatorを試すと、クリップボードの使用方法に関連する次のエラーが表示されます。
nsITransferable
Gecko 16 で変更されました。警告:
nsITransferable
プライベート ブラウジング モードをより適切にサポートするために、インターフェイスが変更されました。オブジェクトをインスタンス化した後、init
他の関数が呼び出される前にその関数を呼び出す必要があります。詳細については、 https://developer.mozilla.org/en-US/docs/Using_the_Clipboardを参照してください。var trans = Components.classes["@mozilla.org/widget/transferable;1"].createInstance(Components.interfaces.nsITransferable); if ('init' in trans){ trans.init(null);};
私はこれを理解できません。
ここに私のコードがあります - 私は明らかに呼び出していtrans.init
ます:
var clip = Components.classes["@mozilla.org/widget/clipboard;1"].getService(Components.interfaces.nsIClipboard);
if (!clip) return "";
var trans = Components.classes["@mozilla.org/widget/transferable;1"].createInstance(Components.interfaces.nsITransferable);
if ('init' in trans){ trans.init(null);}; //<--IT DOESN'T LIKE THIS
if (!trans) return false;
trans.addDataFlavor("text/unicode");
Transferable
Mozilla の例 hereの関数も試しましたが、同じ非検証レポートが表示されます。
Mozilla AMO 編集者の 1 人が、これを正確に書くように私に言いましたが、まだ有効ではありません。
私も試しました、単純に:
var trans = Components.classes["@mozilla.org/widget/transferable;1"].createInstance(Components.interfaces.nsITransferable);
trans.init(null); //<---LOOK HERE
if (!trans) return false;
trans.addDataFlavor("text/unicode");
Validator はエラーを報告しません。この警告だけです。すべてが正常に機能します。Mozilla は Gecko エンジンを更新し、開発者が新しい標準に対応することを望んでいます。
私の使い方では、おそらくアプリ外から取得したクリップボードの中身も使えるようにしたいので、null
代わりにwindow
.
どんなアドバイスも素晴らしいでしょう!