Open Bug 112288 Opened 23 years ago Updated 2 years ago

window.ondragdrop JS event is not getting triggered.

Categories

(Core :: DOM: UI Events & Focus Handling, defect)

x86
All
defect

Tracking

()

mozilla1.2alpha

People

(Reporter: madhur, Unassigned)

Details

(Keywords: helpwanted)

Attachments

(1 file)

platforms - all
OS - all

2001-10-22-0.9.4 branch build (NS6.2)
2001-11-26-6.2.1 rtm build (NS6.2.1)

Open the testcase and dragdrop any file or link onto this window. 

expected: 
an alert box is supposed to be displayed with the message "ondragdrop event has 
been triggered"

actual: 
the ondragdrop JS event is not getting triggered.

works fine on NS4.77
Attached file testcase
Is this really something we want untrusted web content to be able to detect?
Target Milestone: --- → mozilla1.2
QA Contact: madhur → rakeshmishra
It doesn't seem that this event is implemented.  It's also possible that I'm not
using it correctly, but there isn't much documentation available (only found
http://www.mozilla.org/docs/dom/domref/dom_window_ref57.html#1018270, which
doesn't say much).
QA Contact: rakeshmishra → trix
Note that this works in NS4 and that this is useful for creating a web kiosk
(see bug 152080).
.
Assignee: joki → saari
QA Contact: trix → ian
This bug hasn't had any activity in about 2 years, but it still exists, at least
in the latest Firefox builds.

I'm not sure why there isn't more interest expressed by end-users at this
missing functionality.

I've started a thread on this in the "Mozilla Bugs" forum:
http://forums.mozillazine.org/viewtopic.php?p=863806

Below is the revelant portion of my posting:

Neither the onDragDrop element attribute, as used in this demo:

http://developer.netscape.com/docs/technote/javascript/eventhandler/ondrag.htm

or the ondragdrop window property (window.ondragdrop), as discussed here:

http://www.faqts.com/knowledge_base/view.phtml/aid/2118

seem to work. They don't produce an error, but the handler never gets called.

This seems to be a capability left out of Mozilla (and in turn Firefox), yet
there doesn't appear to be[...]discussion on the forums, which makes me wonder
if it was an intentional omission. One reason why it might be intentional is
that to fully handle drag-and-drop you potentially need to set many attributes
(enabling the acceptance of dropped items, specifying the types of items
accepted, etc.) and handlers, though you can get away with defaults in many
cases. I could see developers arguing that merely providing a simple handler
would be an incomplete solution, and thus leaving the feature out until someone
was ready to implement the full capability. But I haven't seen any discussion
like that.

I have found that the DOM specified technique:

document.addEventListener("dragdrop", handler, true);

works in Firefox (and I'd assume Mozilla), but still find it odd that the other
documented forms are not functioning. 

 -Tom
Those are documented for Netscape 4, not for Mozilla.
(In reply to comment #7)
> Those are documented for Netscape 4, not for Mozilla.

http://www.mozilla.org/docs/dom/domref/dom_window_ref57.html
  window.ondragdrop
  An event handler for drag & drop events sent to the window.
[...]

Although at the bottom it says:
  Specification
  DOM Level 0. Not part of specification.

and I haven't been able to figure out yet whether that means not part of the W3C
spec., but part of Mozilla's spec., or the opposite.

Probably the former, if this is the applicable W3C spec:

(I don't see a "Level 0" spec. (unless that's shorthand for saying it isn't in
the spec.), but DOM Level 2 is from the same time period as the Mozilla document)
http://www.w3.org/TR/DOM-Level-2-Events/

The section specifically on ECMAScript Language Binding:
http://www.w3.org/TR/DOM-Level-2-Events/ecma-script-binding.html

or the newer DOM Level 3 equivalents:
http://www.w3.org/TR/2003/NOTE-DOM-Level-3-Events-20031107/
http://www.w3.org/TR/2003/NOTE-DOM-Level-3-Events-20031107/ecma-script-binding.html

None mention window.ondragdrop.

I see the HTML 4.01 spec. also doesn't list an "ondragdrop" event handler attribute:
http://www.w3.org/TR/html401/interact/scripts.html#h-18.2.3

which probably explains why it isn't implemented in Mozilla.

Maybe the needed patch is for the Mozilla spec. instead of the code. Ideally
leaving a placeholder referring people to the newer document.addEventListener() API.

I'm still curious to know why this was dropped, but that will probably require
data mining in the W3C working group list archives...
Interestingly, other drag events _are_ being triggered, just not dragdrop. 
Dragenter, dragover, dragexit, are all being triggered.  Dragdrop isn't included
in that list.  Here's a snippet of logged events arising from dragging an image
from one frame into another:
EVTYPE:dragenter
EVTYPE:dragenter
EVTYPE:dragover
EVTYPE:dragexit
EVTYPE:dragenter
EVTYPE:dragover
EVTYPE:dragexit
EVTYPE:dragenter
EVTYPE:dragover

Clarification: the destination frame into which I am dragging elements (imgs)
has an event handler that logs these events.

What is also interesting is that mouse events are not registered until I release
the held-mouse button that should terminate the drag.  I'd assume that this
would consist of a mouseup event, but no mouseup event is registered at that
time.  I must press the mouse button a second time before a mouseup event
actually is sent.

Tom Metro's previous comment seems to suggest that addEventListener
documentation provides an authoritative account of what the mozilla browser
supports and what it does not, yet the mozilla DOM documentation does describe
dragenter, dragover, dragexit, dragdrop events, and my above test case does
employ addEventListener to attach event handlers. If there is confusion
regarding what the mozilla browser does and does not support, then this
confusion has not yet been cleared up by mozilla documentation.
Assignee: saari → nobody
Keywords: helpwanted
Any updates?
(In reply to comment #10)
> Any updates?

Pardon my faux pas of providing no material benefit to the bug.

This bug is still present in FF3.0

It seems like it would be a very useful feature, especially in light of AJAX tools that do things like edit images (flickr, etc.) or edit documents (google docs). 

Is there a decision being made behind the scenes or subconsciously  (even inaction is an action) that isn't documented here?

Ciao!
QA Contact: ian → events
bump()
Component: Event Handling → User events and focus handling
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: