Closed Bug 32415 Opened 24 years ago Closed 10 years ago

[DOM] mouseover="alert('foo')" blocks the firing of mouseout

Categories

(Core :: DOM: Core & HTML, defect, P3)

defect

Tracking

()

RESOLVED WORKSFORME

People

(Reporter: jrgmorrison, Unassigned)

References

()

Details

(Keywords: dom0, Whiteboard: [nsbeta2-][nsbeta3-])

Attachments

(1 file)

Overview Description:
  onmouseover="alert('foo')" blocks the firing of onmouseout for the same 
element.

Steps to Reproduce:
1) open the attachment (to follow)
2) move the mouse over and then out of the yellow DIV on the page

Actual Results:
  An alert dialog that says 'mouse over' is thrown. 

Expected Results:
  An alert dialog that says 'mouse over' is thrown, followed by an alert dialog
  that says 'mouse out' (i.e., the alert box does not block the firing of the 
  onmouseout event. 

 Note: it is possible to move the mouse on Mozilla such that more than one alert
 box is thrown up (all on mouseover events). When dismissing them, it may appear
 that clicking on the OK has no effect, but this is simply a consequence of 
having
 multiple alert boxes stacked at the same screen x/y position. 

Reproducibility: always

Build Date & Platform Bug Found:
  2000031809  win98 trunk commercial
  2000031809  linux rh 6.0 trunk commercial
  2000031809  macos 8.6 trunk commercial

  For comparison, both events fire and both alerts are thrown by Nav 4.73 on 
  win98.

Additional Information:

 This bug is a "leftover" from bug #29353. 

 From bug #29353: 
  ---- Additional Comments From danm@netscape.com 2000-03-17 21:59 ----
  ... I also see what you're describing with the mouseout event that's
  missed if mouseover brings up an alert. My guess is the intervening
  alert window confuses the issue. It sounds like a focus problem that I'd
  give to saari.
  ----   

To be honest, I don't have a use case in mind for this scenario, but the
4.x behaviour appears to be the correct one. This also seems more like a
DOM issue really -- CC: saari. (Apologies if I put this in the wrong
component).
Tom, I think this one belongs to you, reassigning...
Assignee: jst → joki
*** Bug 29352 has been marked as a duplicate of this bug. ***
Nominating nsbeta2. We have to start drawing a line on DOM0 backward 
compatibility; these bugs are supposed to be a high priority for nsbeta2 per the 
beta2 criteria.
Keywords: nsbeta2
Setting to [nsbeta3+].

jgrm -- One question: bringing up an alert for a mouseover would be pretty 
unusual on the web; modal alerts are universally frowned upon on web pages. If 
the firing of onmouseover with *any* code is blocking later mouseouts, that's a 
source of deep concern. e.g. that would cause image rollovers to fail. However, 
if it's only the use of alert in particular that causes this, it's a pretty low 
priority, possibly even FUTURE--I think alert on onmouseover will be very rare 
on the web.

Could you experiment and determine whether it's just alert itself that's causing 
the problem? Marking [NEED INFO].
Whiteboard: [NEED INFO]
[nsbeta2-] nominating for nsbeta3
Keywords: nsbeta3
Whiteboard: [NEED INFO] → [nsbeta2-] [NEED INFO]
I did try to find another situation that produces this behaviour but could not
find one. As I originally noted -- "To be honest, I don't have a use case in 
mind for this scenario, but the 4.x behaviour appears to be the correct one." 

This falls into undefined behaviour, but, all things being equal, implementing
this in a way that is compatible with nav4.x and IE would be preferable. 

[Of course, all things are not equal, and time + priorities may dictate that 
it is acceptable to drop the mouseout in this case].
Whiteboard: [nsbeta2-] [NEED INFO] → [nsbeta2-]
This works on my working tree.  Not sure why.  Investigating.
Status: NEW → ASSIGNED
Okay, still not sure why this works now but in my latest tip build its okay.  
There is still the issue that multiple alerts can be put up at once but that is 
dealt with in bug 31889.  I now get an alert for each mouseover and mouseout of 
the div on WinNT.  I'm marking this WORKSFORME.
Status: ASSIGNED → RESOLVED
Closed: 24 years ago
Resolution: --- → WORKSFORME
This literally started working since this morning. The morning verif. builds
did not do fire both events, but it's working in the evening verif. build on 
win32. (I haven't checked other platforms).
Unfortunately I've found why this works.  The alert dialogs have become 
non-modal and they will be going back to being modal.  This is still working but 
I'm reopening it.
Status: RESOLVED → REOPENED
Resolution: WORKSFORME → ---
So the current status is this:

1) The mouseover state isn't set until after the alert box (and all other DOM 
calls) are done.  So as a result when the alert is fired the current state isn't 
yet set.

2) If I fix the above so that the state is set before the DOM call we will 
immediately get a mouseout when the alert box opens.  The problem with this is 
that even if the mouse is left over the link the whole time it will give another 
mouseover as soon as it is moved after the alert is closed, thus firing another 
alert and so on ad infinitum.

Not sure how to proceed with this one.  As long as the alerts are modal its 
difficult to prevent the instant mouseout event.  If they're not prevented then 
some method would need to be devised such that we know to suppress the mouseout 
without resetting our internal data so that after the alert is closed we could 
continue from the same state we had before the alert.
Status: REOPENED → ASSIGNED
Adding [DOM] prefix to bugs related to DOM Level 0, 1, or 2 
compatibility/compliance.
Summary: onmouseover="alert('foo')" blocks the firing of onmouseout for the same element. → [DOM] mouseover="alert('foo')" blocks the firing of mouseout
As noted earlier by John, we don't have a important use case for this bug.  
Futuring unless somebody objects...
This bug has been marked "future" because the original netscape engineer working 
on this is over-burdened. If you feel this is an error, that you or another
known resource will be working on this bug,or if it blocks your work in some way 
-- please attach your concern to the bug for reconsideration. 
Whiteboard: [nsbeta2-] → [nsbeta2-][nsbeta3-]
Target Milestone: --- → Future
Nominating for nsbeta1, since nsbeta2,3, dogfood, rtm keywords are going to be 
cleared soon and important bugs could loose attention. I think this one deserves 
nsbeta1 nomination.
Keywords: nsbeta2, nsbeta3nsbeta1
*** Bug 65337 has been marked as a duplicate of this bug. ***
Chanigng platform and os to reflect the scope of bug 65337, which was deemed as
a duplicate of this.
OS: Windows 98 → All
Hardware: PC → All
Keywords: dom0
nsbeta1-, but would be nice to have for 1.0.
Keywords: nsbeta1nsbeta1-
Target Milestone: Future → mozilla1.0
Bugs targeted at mozilla1.0 without the mozilla1.0 keyword moved to mozilla1.0.1 
(you can query for this string to delete spam or retrieve the list of bugs I've 
moved)
Target Milestone: mozilla1.0 → mozilla1.0.1
onMouseOut also does not get called if onMouseOver makes a call to
cur.style.MozOpacity. 

This page shows it:
http://www.dynamicdrive.com/dynamicindex4/image5.htm

Now the stupid mouseover trick is broken ;)
Jan, I just stumbled over the same problem.

Doesn't this annoying bug belong into a seperate bug report?
I don't think so, because to me this seems be the same bug, but I am not a
Mozilla hacker. So I better leave this to the Mozilla development team to decide
this.

Setting a new target milestone would make sense though ;)

Jan Derk
still fails, i.e. second alert pops but 31889is blocked.

SM trunk Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9a1) Gecko/20051124 SeaMonkey/1.5a


Assignee: joki → general
Status: ASSIGNED → NEW
QA Contact: desale → ian
Assignee: general → nobody
QA Contact: ian → general
Is this one a wontfix?
Target Milestone: mozilla1.0.1 → ---
It looks like it's working in Firefox31.
Status: NEW → RESOLVED
Closed: 24 years ago10 years ago
Resolution: --- → WORKSFORME
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: