![]() |
Firefox web browser - Faster, more secure & customizable |
hacks.mozilla.orgにおいてfile drag and drop in Firefox 3.6のタイトルのもと、Firefox 3.6でファイルのドラッグ&ドロップと複数ファイルの選択を処理する方法が紹介されている。ドラッグ&ドロップ対象のデータを扱うDataTransferはFiorefox 3.0 (Gecko 1.9)で、ドラッグ&ドロップのイベントはFirefox 3.5 (Gecko 1.9.1)で、非同期のファイル読み込みはFirefox 3.6 (Gecko 1.9.2)で実装されている。これらを組み合わせて処理する方法が簡単に説明されている。なお、複数ファイルを選択する方法は同じくhacks.mozilla.orgにおいてサンプルコードが紹介されている。
| ドラッグ&ドロップイベント | 対象 | 内容 |
|---|---|---|
| dragenter | ドラッグを受ける側 | ドラッグされている要素がエリアに入ってきたとき |
| dragover | ドラッグを受ける側 | ドラッグされている要素がエリアのなかにあるとき |
| dragleave | ドラッグを受ける側 | ドラッグされている要素がエリアからでていったとき |
| drop | ドラッグを受ける側 | ドロップされたとき |
| dragstart | ドラッグされる側 | ドラッグが開始されたとき |
| drag | ドラッグされる側 | ドラッグ中 |
| dragend | ドラッグされる側 | ドラッグが終了したとき |
こうした機能を組み合わせることで、複数ファイルや要素をドラッグ&ドロップでFirefox 3.6で処理することができるようになる。file drag and drop in Firefox 3.6で紹介されているデモンストレーションから、特にドラッグ&ドロップと複数ファイルの処理に的を絞ったデモ用HTMLを次に掲載する。
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Firefox 3.6 ファイルドラッグ&ドロップデモンストレーション</title>
<style type="text/css">
body {
width: 600px;
}
#area_DandD {
background: #efefef;
border: 1px solid #333;
margin: 10px 10px 10px 10px;
padding: 0px 10px 0px 10px;
min-height: 300px;
}
</style>
<script type="text/javascript">
//<![CDATA[
var area_DandD;
var area_status;
function init()
{
area_status = document.getElementById("area_status");
area_DandD = document.getElementById("area_DandD");
area_DandD.addEventListener("dragenter", dragenterEventProcess, true);
area_DandD.addEventListener("dragover", dragoverEventProcess, true);
area_DandD.addEventListener("dragleave", dragleaveEventProcess, true);
area_DandD.addEventListener("drop", dropEventProcess, true);
}
function dragenterEventProcess(event)
{
area_status.innerHTML = "drag entered";
}
function dragoverEventProcess(event)
{
event.preventDefault();
area_status.innerHTML = "now dragging...";
}
function dragleaveEventProcess(event)
{
area_status.innerHTML = "drag leaved";
}
function dropEventProcess(event)
{
event.preventDefault();
var files = event.dataTransfer.files;
var buffer = "You've just dropped " + files.length + " files.<hr />";
for (var i = 0; i < files.length; i++) {
var file = files[i];
buffer += "ファイル名: " + file.name + "<br />";
buffer += "タイプ: " + file.type + "<br />";
buffer += "URN: " + file.urn + "<hr />";
}
area_status.innerHTML = buffer;
}
window.addEventListener("load", init, true);
//]]>
</script>
</head>
<body>
<div id="area_DandD">
<p id="area_status"></p>
</div>
</body>
</html>
サンプルはFirefox 3.6 beta 5など3.6系のFirefoxで試すことができる。OSの提供しているファイルマネージャを使ってファイルを選択し、Firefox 3.6で表示させた灰色のエリアにドラッグすると「now dragging...」というテキストが表示される。エリアからはずれると「drag leaved」となり、ふたたびエリアに入れば「now dragging...」が表示される。ファイルをドロップすると「You've just dropped 数 files.」というメッセージのあとに、それぞれのファイル名とタイプ、URNがリストで表示される。
なお、こうした機能はFirefox 3.6の正式版やまたは将来のバージョンで変更されたりサポートされなくなる可能性もある。
| Firefox 3.5、シェア世界No.1に [2009/12/22] |
| File APIをFirefox 3.6で試してみる [2009/12/11] |
| Firefox 3.6 CSS独自拡張バックグラウンド機能を使う方法 [2009/12/9] |
| Firefox 3.6でCSSグラデーションを使う方法 [2009/12/3] |
| CSSグラデーションを使ってクールなボタンをつくる方法 [2009/12/4] |
| Firefox 3.7、Direct2Dで高速化 [2009/11/27] |
| アドオンをFirefox 3.6向けに! Mozillaがバージョンチェック呼びかけ [2009/11/4] |
| Firefoxユーザー1000万人がFlashプラグインを最新版へ更新 [2009/10/27] |
| Firefox 3.6、フォントによるデザイン差異を縮小 [2009/10/26] |
| Firefoxデザインの秘密 [2009/10/16] |
| イプスイッチ、Windows環境の監視ツール「WhatsUp Gold」で日本語に対応 [15:33 5/28] |
| アイシンの最新安全運転システム - 車両周辺・後方障害物監視、わき見・居眠り判断 [10:30 5/28] |
| ラネクシー、画像処理ソフトウェア開発キットの最新版を64bit版で販売 [10:10 5/28] |
| 東陽テクニカ、1G/10GbE回線対応のポータブルネットワークアナライザ [09:57 5/28] |
| 日本発の取り組み「Mozilla Factory」がスタート [09:30 5/28] |
|
【連載】これだけは要チェック! TOEIC(R)単語帳 第111回 今回のお題は…「calm」 [17:00 5/28] キャリア |
|
【特別企画】最新4コアCore i7搭載ノートがついに6万円を切った!「LuvBook LB-F310X」 [17:00 5/28] パソコン |
|
【レビュー】さらにサクサク、高機能。名実ともにフラッグシップな「EXILIM EX-ZR300」 [16:50 5/28] 家電 |
|
サンコー、水深20mで使用可能なフルHD対応デジタルビデオカメラ [16:49 5/28] 家電 |
|
「チキンクリスプ」が朝の「¥100マック」に [16:37 5/28] ライフ |
4つの診断で、自分の適性を見つめなおそう!
働くこと・挑戦し続けることへの思いを綴ったインタビュー
あなたにピッタリのアドバイスを読むことができます。
転職に必要な情報が収集できます
企業からアプローチのメッセージが届きます。