Opened 11 years ago

Closed 11 years ago

Last modified 11 years ago

#8095 closed defect (fixed)

IE8: placement of opened submenu is incorrect

Reported by: Becky Gibson Owned by: bill
Priority: high Milestone: 1.3
Component: Dijit Version: 1.2.1
Keywords: Cc:
Blocked By: Blocking:

Description

Tested using dijit/tests/test_Menu.html. When contextMenu is invoked, the placement of opened submenus is incorrect. The popup submenus should open next to the submenu Item text "attached" to the original menu. In IE8 the placement is incorrect.

Attachments (1)

tableWidth.html (683 bytes) - added by bill 11 years ago.
test case to show IE8 bug (plain HTML + JS, no dojo)

Download all attachments as: .zip

Change History (7)

comment:1 Changed 11 years ago by bill

I started to look at this.

The problem is that dojo.marginBox() returns that the width of the table row (part of the Menu) is 373px when really it's only 139px. Not sure why.

comment:2 Changed 11 years ago by bill

dojo.marginBox(), as well as dojo.style(tr, 'width'), seem to be returning the distance from the (left) edge of the document/viewport (rather than the left edge of the table) to the right edge of the <tr>.

Note how the distance between the sub menu and main menu changes depending on how far the main menu is from the left edge of the browser.

Changed 11 years ago by bill

Attachment: tableWidth.html added

test case to show IE8 bug (plain HTML + JS, no dojo)

comment:3 Changed 11 years ago by bill

More notes:

I can make the code work by changing

node.offsetWidth

into

d.isIE == 8 && node.tagName == "TR" ? node.clientWidth : node.offsetWidth

However, node.offsetWidth occurs many times throughout the code, in particular in dojo/_base/html.js, but also in dijit/_base/place.js (the latter file is the one to change to fix the menu problem). Thus, it seems like we need a better solution, or hopefully a fix from Microsoft.

comment:4 Changed 11 years ago by bill

Owner: set to bill
Status: newassigned

OK, I'll check in a temporary hack to get this working on IE8.

comment:5 Changed 11 years ago by bill

Resolution: fixed
Status: assignedclosed

Worked around in [15779].

comment:6 Changed 11 years ago by bill

(In [16327]) Remove workaround from [15779] that is no longer needed for IE8 RC1. IE8, however, has other issues with menu that need to be fixed. Refs #8095 !strict.

Note: See TracTickets for help on using tickets.