well, here is my demo.
<HTML>
<HEAD>
<TITLE>Gears Drag and Drop Test v0.1</TITLE>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"
/>
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />
<style>
.body{
text-align:center;
background-color: #efefef;
}
.drop_area {
margin-left:auto;
margin-right:auto;
width: 300px;
height: 300px;
border: 1px solid #000000;
background-color: #efefef;
}
.desc_file{
border: 1px solid #10fff0;
}
.desc{
width: 400px;
margin-left:auto;
margin-right:auto;
margin-bottom: 10px;
}
</style>
<body>
<script type="text/javascript" src="gears_init.js"></script>
<div class="desc" >Drag and drop Your files in the rect below, Enjoy
</div>
<div class="desc" >Valid In: Mozilla Firefox 3.0.11 / IE 8 / IE 6
</div>
<div class="drop_area" id="dd_area" ondragover="return false;"
ondragenter="return false;">
<!--<div class="drop_area" id="dd_area" ondragover="return
false;" ondragenter="return false;">-->
Drop it/them here
</div>
<div id="desc_files">
</div>
<script language="javascript">
</script>
<script type="text/javascript" language="javascript">
var desktop = null;
var drop_area = null;
var isIE = google.gears.factory.getBuildInfo().indexOf(';ie') > -1;
var isFirefox = google.gears.factory.getBuildInfo().indexOf(';firefox')
> -1;
var isSafari = google.gears.factory.getBuildInfo().indexOf(';safari') >
-1;
var isNpapi = google.gears.factory.getBuildInfo().indexOf(';npapi') > -1;
function init()
{
if( !window.google || ! google.gears )
{
//gearsCheckFailed();
return;
}
desktop = google.gears.factory.create('beta.desktop');
init_event();
}
function dropEvent(event){
var desc_files = document.getElementById('desc_files');
desc_files.innerHTML = ''
var event = event || window.event;
var odata = desktop.getDragData(event, 'application/x-gears-files');
var s = '';
var q = odata && odata.files;
for(var i = 0; i < q.length; i++){
var file = q[i];
s += "<div class=\"desc_file\"><p>File Name:" + file.name +
"</p>";
s += "<p>File Length:" + file.blob.length + "</p>";
s += "<p>File Extension:" + odata.extensions[i] + "</p>";
s += "<p>MimeType:" + odata.mimeTypes[i] + "</p>";
var sm = desktop.extractMetaData(file.blob);
if(sm.imageWidth && sm.imageHeight){
s += "<p>Yeah, It's an image file ,I'll detect and display in
next version</p>";
}
s += "</div>";
}
s += "<p>Total File size:" + odata.totalBytes +"</p>";
desc_files.innerHTML = s;
finish_drag(event, true);
delete q;
q = null;
}
function finish_drag(event, isDrop){
if (isFirefox) {
if(isDrop)
event.stopPropagation();
//https://developer.mozilla.org/en/DOM/event.preventDefault
//event.preventDefault();
} else if (isIE || isSafari || isNpapi) {
if(!isDrop)
event.returnValue = false;
}
}
function reload_event(event){
if (isFirefox) {
event.initEvent();
}
}
function handleDragEnter(event){
var event = event || window.event;
finish_drag(event, false);
}
function handleDragLeave(event){
var event = event || window.event;
finish_drag(event, false);
}
function handleDragOver(event){
var event = event || window.event;
finish_drag(event, false);
}
function handleDragEnter(event){
var event = event || window.event;
finish_drag(event, false);
}
function init_event(){
delete drop_area;
drop_area = null;
drop_area = document.getElementById('dd_area');
if (isFirefox) {
drop_area.addEventListener('dragdrop', dropEvent, false);
} else if (isIE) {
drop_area.attachEvent('ondragenter', handleDragEnter);
drop_area.attachEvent('ondragover', handleDragOver );
drop_area.attachEvent('ondragleave', handleDragLeave);
drop_area.attachEvent('ondrop', dropEvent);
} else if (isSafari || isNpapi) {
drop_area.addEventListener('dragenter', handleDragEnter, false);
drop_area.addEventListener('dragover', handleDragOver, false);
drop_area.addEventListener('dragleave', handleDragLeave, false);
drop_area.addEventListener('drop', dropEvent, false);
}
}
init();
</script>
</body>
</html>
----- 原文 -----
From: Tobi<[email protected]>
Subject:[gears-users] Re: desktop.getDragData returns same fales over and over
again
The error message is "The drag-and-drop event is invalid."
Meybe it's because firefox changed the event from "dragdrop" to
"drag"?
On 23 Jul., 10:07, Željko Mitrović <[email protected]> wrote:
> Sadly it doesn't make any difference for me no matter where I include
> gears_init.js :(
>
>
>
> On Thu, Jul 23, 2009 at 2:53 AM, 杨松 <[email protected]> wrote:
>
> > but I include it at the end of the body.:)
>
> > ----- 原文 -----
>
> > *From:* Željko Mitrović<[email protected]>
> > *Subject:*[gears-users] Re: desktop.getDragData returns same fales
over
> > and over again
>
> > Yeah I saw that link already but that doesn't seem to be problem in
my case
> > since I'm including gears_int.js in body from the beginning :(
>
> > 2009/7/22 alvayang <[email protected]>
>
> >> well, after a few seconds I sloved this problem
>
> >> You must include gears_init.js from the body of the HTML
document, not
> >> the head!
>
> >> here is the link
>
>
>>http://www.scottklarr.com/topic/494/are-you-getting-weird-behavior-or...
> >> :)
>
> >> On Jul 22, 8:50 pm, Željko Mitrović <[email protected]>
wrote:
> >> > Good to know it's not my lousy programing :D
>
> >> > On Wed, Jul 22, 2009 at 2:32 PM, Brendan
<[email protected]> wrote:
>
> >> > > Yep:
> >> >
>http://groups.google.com/group/gears-users/browse_thread/thread/50ea8.
> >> ..
>
> >> > > On Jul 21, 3:46 am, Danguba
<[email protected]> wrote:
> >> > > > Hi,
> >> > > > has anyone experienced similar problem with
Firefox 3.0.11
> >> > > > When I first do drag and drop everything work as
expected but after
> >> > > > that on every next drop desktop.getDragData
returns same data as
> >> first
> >> > > > one. This is only happening in Firefox. In IE7 it
works like a
> >> charm.
> >> > > > All Best,
> >> > > > Zeljko
>
> > ------------------------------
>
> > 寻找童趣 好游戏让你停不下来
<http://goto.mail.sohu.com/goto.php?code=ecard_jiaozhu>
> > 抽奖换礼,好运有你! <http://goto.mail.sohu.com/goto.php?code=090601jifen>