2009-07-01 2 views
1

私はドロップ領域にondropイベントを設定しました。私はデスクトップからドロップ領域にイメージをドラッグするとイベントを受け取ります。Firefox 3.5のデスクトップからドロップ領域にファイルをドラッグしてアップロードを開始できますか?

しかし、Recommended_Drag_Typesに係る文書:

https://developer.mozilla.org/en/DragDrop/Recommended_Drag_Types

A local file is dragged using the application/x-moz-file type with a data value that is an nsIFile object. Non-privileged web pages are not able to retrieve or modify data of this type.

理にかなっているが、どのように私は、ファイルデータへのアクセスを取得し、ANを介して送るの権限を昇格を促しますかXMLHttpRequest

私はこのコードを実行する際に特権をエスカレートせずにそれをしようとした場合:私はこの上で見つけることができる唯一の資料では、2005年から1である

Permission denied for domain.com to create wrapper for object of class UnnamedClass 

私:

event.dataTransfer.mozSetDataAt("application/x-moz-file", file, 0); 

Javascriptがこのエラーを返します。これはD

netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect'); 

:方向はまだFirefox 3のには適用されている場合伝えることができない、それは、これを行うことをお勧めうまく動作しないようです。

+0

この回答は見つかりましたか?私は少なくともローカルURLを取得することができるようにしたいと思います。何か案は? thx man –

+0

これは可能です!私の答えを見てください:http://stackoverflow.com/a/33431704/195216 – dforce

答えて

0

まだ3.5にアップグレードしていない場合は、dragdropupload拡張子を使用できます。

 
    netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect'); 
    ... 
    function doDrop(event) { 
     ... 
     var file = event.dataTransfer.mozGetDataAt("application/x-moz-file", 0); 
     ... 
    } 

を、私は、関数の本体内の権限を昇格:私はエラーを取り除く

 
    ... 
    function doDrop(event) { 

     netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect'); 
     ... 
     var file = event.dataTransfer.mozGetDataAt("application/x-moz-file", 0); 
     ... 
    } 

はあなたが説明してへのアクセスを得る

+0

私はこれをWeb開発者の観点から考えていますが、ほとんどの人がFirefox v3.5にアップグレードすることができますが、この拡張機能をインストールしてください。 – bertrandom

0

私の代わりに、グローバル権限をエスカレートの場合ということが分かりましたnsIFileインスタンス私が探していた。

+0

Firefox 33では、「netscape.security.PrivilegeManager is undefined」と表示されます。 FF15で削除されたようです:https://support.mozilla.org/en-US/questions/936845 – Dwayne

関連する問題