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>

Reply via email to