#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)
Change History (7)
comment:1 Changed 12 years ago by
comment:2 Changed 12 years ago by
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 12 years ago by
Attachment: | tableWidth.html added |
---|
test case to show IE8 bug (plain HTML + JS, no dojo)
comment:3 Changed 12 years ago by
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 12 years ago by
Owner: | set to bill |
---|---|
Status: | new → assigned |
OK, I'll check in a temporary hack to get this working on IE8.
comment:5 Changed 12 years ago by
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
Worked around in [15779].
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.