MozillaZine.jp フォーラム
https://forums.mozillazine.jp/

Windows Vista でWindows ExplorerからファイルをDropできない
https://forums.mozillazine.jp/viewtopic.php?f=26&t=9611
ページ 11

作成者:  mitsugu [ 2010年1月09日(土) 18:25 ]
記事の件名:  Windows Vista でWindows ExplorerからファイルをDropできない

 実は以前ご相談させていただいた http://forums.mozillazine.jp/viewtopic.php?t=9120 と関連があるのですが、Windows VistaにおいてWindows ExplorerからファイルをDropできない現象に悩んでおります。コード自体はWindowsXPとUbuntu環境で動作することを確認済み、といいますか元々動いており現在でも動いております。
 最近たまたま友人所有のVista環境で確認する機会があり、試してみたところ、Dropイベントをまったく拾うことができていない、ということが判明しました。なんど確認しましてもWindowsXP、Ubuntu環境では現象が発生することがなく、Vista固有の問題なのか、とも推測しております。

 当該コードは http://github.com/mitsugu/foxzou/blob/1.0/chrome/content/overlay.js のDragDropイベントハンドラのonDrop()になります。このコードは以前からWindowsXP、Ubuntu環境で普通に動作しています。テストのために
コード:
alert(dropdata.data);

というコードを入れてもalert自体がポップアップされません。

 さらに追記しますと、一度Firefoxのコンテンツ領域に画像ファイルをドロップし、コンテンツ領域から当該拡張にドラッグ・アンド・ドロップをすることは可能で、そのようなオペレーションをすればWindows Vistaであっても当該コードは動作しています。そのため拡張側の問題なのかOS環境の問題なのか切り分けができておりません。

 どなたかこのような現象に遭遇されていたり、あるいは現象に遭遇かつ解決に至った方はいらっしゃらないでしょうか。

[現象が発生しない環境]
OS:Windows XP、Ubuntu
Firefox:3.0.0.x、3.5.x、Namoroka、Minefield

[現象が発生する環境]
OS:Windows Vista Ultimate
Firefox:3.0.0.x、3.5.x、Namoroka、Minefield

作成者:  mitsugu [ 2010年1月11日(月) 17:19 ]
記事の件名:  [中間報告] Windows Vista でWindows ExplorerからファイルをDropできない

 Windows Vista環境においてWindows Explorerからのドラッグ・アンド・ドロップを可能にするには、以下のように実装する必要がある(古い方法ではWindows Vistaでは動作しない)。なお、以下の方法は Firefox3.0.xでは使用不可能である。また event.preventDefault() に関する記述は省略する。

・XUL側でdragover、dropイベントを捕捉するようにondragover、ondrop属性を書く
・dropイベントハンドラ内でドロップされたファイルのパス名を取り出す際は、コンテントタイプに "text/x-moz-url" を指定する。"text/plain"を指定するとWindows Vistaではパス名を拾うことができない。

以下残件。
 ・複数ファイルをドロップする際に event.dataTransfer.mozItemCount、event.dataTransfer.mozGetDataAt("text/x-moz-url",i) がWindows Vistaで正常に機能するかの確認 (Ubuntuでは正常動作確認済み)

参考ページ
 ・ドラッグ&ドロップ
 ・推奨されるドラッグのデータ型
 ・複数の項目のドラッグ&ドロップ

以上

作成者:  mitsugu [ 2010年1月17日(日) 07:00 ]
記事の件名:  [済]Windows Vista でWindows ExplorerからファイルをDropできない

 問題が解決したので報告です。この URL で問題を解決したソースを公開しています。

 該当個所は、XUL での記述は overlay.xul 内の id が foxzou-contents の vbox 要素、JavaScript 側は overlay.js の
foxzouNs.dragDrop.onDrop() 関数
がそれです。

# このコードは Firefox3.5 から動きます。Firefox3.0.xでは動作しません。
# また旧 API は Windows Vista 以降では動作しません (エクスプローラからドロップできない)。

ページ 11 All times are UTC + 9 hours
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/