Milonic provide full featured pull down web menus for some of the worlds largest companies
click here to see what it can do for you

Download Milonic DHTML Menu
Buy Milonic DHTML Menu

Back To Start Of Archive
Taken From The Forum: Help & Support for DHTML Menu Version 5+
Forum Topic: Click to view post
Last Updated: Saturday July 14 2012 - 06:07:33

Milonic and Mac IE (Yes I read the FAQ)


Poster: jlwood
Dated: Wednesday April 7 2004 - 23:32:19 BST

I've been staring at this problem off-and-on for two days now and can't figure it out. The menus won't line up no matter what I do.

I read the Mac/IE FAQ several times and had a coworker look at it as well.

The site I am building is XML driven so I had to build the menu dynamically. It was tricky and then I ran into this Mac/IE problem.

What is wrong?

http://www.unionboxcompany.com/staging

Thanks in advance,
Joe


Poster: Maz
Dated: Thursday April 8 2004 - 0:11:27 BST

Is the problem you are referring to, the submenu left offset is about 30 pixels to the right?

I'm probably the only one on a mac right now.

maz


Poster: Maz
Dated: Thursday April 8 2004 - 7:43:55 BST

I don't see anything specific, first update to v5.1.

I'll leave my notes incase that doesn't fix it.

you could try suboffsetLeft=1 and in the menu style try left="offset=??" to see if it makes a difference.

First try removing subimage="";
Remove the quotes from single figures.
You are not using borderstyle and remove those.

You could try removing the slashes//
Or add a semicolon at the end of each menu item.

I don't see any xhtml doc type otherwise I'd say use CDATA to hide the scripts.

What's happening looks more like something to do with being enclosed in a table or div. I wonder if you could just place the whole menu back in the data.js rather than in the html page.

maz

RE: Milonic and Mac IE (Yes I read the FAQ)


Poster: jlwood
Dated: Thursday April 8 2004 - 15:26:05 BST

Maz,

Thanks for all the info.

Yes the problem is the strong offset to the right in everything mac.

I tried the things you mentioned:

1) No positive affect with 5.1
2) Removed uneccesary quotes and style attributes
3) Tried the offset things you mentioned. I don't see offset as a valid style attribute in the faq list and it had no affect?
4) Yanked the menu js out of the page like you recomended.

I didn't understand the semicolon and slashes idea. Thought I had semicolons and I don;t see the slashes.

I have set up this test page to help simplify things:

http://www.unionboxcompany.com/staging/test.html

My client is on all macs so this is a huge problem. In the end I really do need to output the data js in the html of the page due to the fact that this is being generated via xml/asp/xslt.

Maybe the Milonic menu doesn't truly work "relatively" with Mac/IE . . . I've burned up a lot of hours building this thing dynamically so that would really stink.


Poster: Maz
Dated: Thursday April 8 2004 - 17:56:26 BST

Where you have these

style=menuStyle2;
overflow="scroll";

did you try playing with

left="offset=-20";


(you don't need overflow scroll, it was a problem some versions back, but shouldn't be now.)

Can't wait until IE mac disappears completely, since MS is abandoning it you should convince everyone its obsolete.

I used to place the <sript for the menu_data.js in the table> and keep the main menu & submenus & drewmenus in the same file. That way there is no separation of menu from submenu.

Absolute positioning is the best though.

maz

Re: Milonic and Mac IE (Yes I read the FAQ)


Poster: jlwood
Dated: Thursday April 8 2004 - 18:50:22 BST

The left attribute definetaly changed things on the PC, but nothing on the mac.

I am going to resort to absolute positioning for Mac/IE only. I don't trust absolute positioning . . . I'm old school ;)

BTW - Doesn't this problem exist in Safari? If so, this problem is not obsolete.


Poster: Maz
Dated: Thursday April 8 2004 - 19:05:15 BST

No problem on Safari.

maz

Re:Milonic and Mac IE (Yes I read the FAQ)


Poster: jlwood
Dated: Thursday April 8 2004 - 20:03:21 BST

OK, now I'm in a gray area.

I have never positioned one of these menus absolutely!

Thought I was doing things right here, but apparently not:

http://www.unionboxcompany.com/staging/test.html
and
http://www.unionboxcompany.com/staging/leftnav/data.js

I write drawmenus() at the bottom of the html only for IE/Mac and I set some things differently in data.js.

Also, note I need to center it, but I read that faq and that looks easy enough.

Thanks in advance,
Joe


Poster: kevin3442
Dated: Thursday April 8 2004 - 20:26:02 BST

If I may add...

(1) In navStyle.js, you have
Code:
pagecolor="ffffff";

in both of the menu styles. You fogot the # for hex.

(2) In menuStyle2, you have
Code:
offset=200;

offset is not a menu style property, so you should remove this line.

(3) Re: the semicoon thing. When you define a menu item, the string passed in the call to aI() should end with a smicolon befoer the closing quote. For example, you have
Code:
aI("text=Canal Street Malt House;url=default.asp?id=7");

so the aI() string ends with id=7". It should be
Code:
aI("text=Canal Street Malt House;url=default.asp?id=7;");

with a ; in front of the closing ".

(4) I think the biggest problem is how you've embedded menus in tables. I hope I don't sound too preachy, but you mentioned that you read the FAQ on the difficulties of embedding a menu in a table in Mac/IE. I assume that you got there from the sample page on embedding menus in tables (if not, you should read it). Problem is, I see several things, at least in your test page's current incarnation, that do not conform to the instructions.

(a) You've loaded your menu scripts, particularly those containing the menu definitions, in the <head>. The instructions for embedding in menus suggest loading them in the <body>, particulary for Mac/IE.

(b) You have not separated your main menu definition from the submenu definition. They are all in the same block of js code (in your data.js file, in this case). This leads to...

(c) There is only one call to drawMenus(), and it is in a table. This will essentially embed all ofyour menus inside the table, so that (on a Mac), the browser will open them relative to the origin (top,left) of the table, raher than the origin of the browser window (like all other browsers do). The result?.... your submens will probably be offset to the right the same distance that the left side of your table is offset from the left side of the browser window. The solution to this is outlined in both the sample page and in the FAQ (I say that not to be a jerk, but just because I don't want to re-iterate whatthey say here). The test would be to fire up IE on your Mac, then go to the sample page... do the submenus in the example men line up correctly?

I think the keys points are (1) define all submenus outside of the table, at the top of the <body> e.g., take the "Main" menu code out of data.js, and put a call to drawMenus() at the bottom of data.js... you can effetively do the same dynamically by outputting all submenu code, plus the drawMenus() call, inside of <script> tags at the top of the <body>. (2) The "Main" menu code goes directly in the table, followed by another call to drawMenus(), all inside of <script> tags, of course. By following these guidelines, the only menu ebmedded in the table is the "Main" menu. The submenus are defined outside of the menu, an any other object. You could try that.

Alternatively, you could use the top property, and the screenposition property combined with a left offset to properly position your main menu, withou having to put any of it in a table (and suffering the oddities that result). I personally prefer that approach. It's not compleely absolute positioning, because the horizontal location will change as the user resizes the window, keeping your menu where you want it in relation to your centered content. There's a samle page that explains the approach. If you want to try that but have trouble, come on back and we'll help you out with it.

Hope that helps,

Kevin


Poster: Maz
Dated: Thursday April 8 2004 - 20:32:31 BST

I'm a bit confused myself, so now you have no menu in ie.

I've heard of placing drawmenu at the bottom of body tag before but I'm not sure if its that or if its not seeing your styles. Did you try drawmenus inside the data file for ie?

Everything is fine in Safari.

maz

Re:Milonic and Mac IE (Yes I read the FAQ)


Poster: jlwood
Dated: Thursday April 8 2004 - 21:13:19 BST

I don't understand when you say to put the drawMenus(); in the bottom of the data.js.

If I do that the nav does not render at all. Also, both the faq and sample show the drawMenus(); after the main menu.

So . . .

I tried my best to follow your instructions but I still must have something wrong:

http://www.unionboxcompany.com/staging/test.html

Should I ditch this and go with absolute for the mac? Are there examples of how to do absolute positioning and centering anywhere?

Also, normally one doesn't semicolon the last line in a list, but I did it anyway per your suggestion. And, the mac/ie faq does not have a semicolon after drawmenu. Is that important?


Poster: Maz
Dated: Thursday April 8 2004 - 23:09:35 BST

Kevin's instructions for the mac are clear, at this stage I don't think giving separate instructions for the mac are helping.

To try absolute. You still should place your script tags like Kevin said under body. placing all the menu data back in the file along with drawmenus.

start with main menu style

top=65;
left="offset=100px"; (that is to adjust off center)
screenposition="center";
menualign="center"; (one screenposition should work, I'm giving you both just incase both do what you want.)

maz


Poster: Ruth
Dated: Friday April 9 2004 - 1:22:02 BST

I think you might try Kevin's suggestion about top, screenposition and offsets. But, I just wanted to clear something up that seems to be confusing you. You do put drawmenus(): in the table with the main menu, but you also have it in the data file with the submenus. It needs to be in both places if you put the main menu in a table cell.

Ruth


Poster: John
Dated: Friday April 9 2004 - 7:45:29 BST

Can we assume you finally got things fixed? I'm looking at the page on OS X 10.3.3 under both Safari 1.2.1 and IE 5.2.3 and see no problems at all.


Poster: jlwood
Dated: Friday April 9 2004 - 17:48:23 BST

No, this is still not fixed.

Ruth, thank you for the clarification. That is what was confusing me.

John, you're running a little state-of-the-art there. I'm dealing with real people.

No nav is displaying at all on 10.2.8/5.2 and 10.1.5/5.1

Maz, Kevin's instructions are not that clear. Remember you guys live and breathe this stuff. This ain't my product. I don't know it like the back of my hand.

Maz, Thanks for the absolute positioning instructions.

Let me mess around, I'll let you know what I find.


Poster: Maz
Dated: Friday April 9 2004 - 17:55:20 BST

Yep, try to get all the menu back in the data file and get back to the basics, I think you have completed the difficult part and are making the simple part complicated. Once the data file is doing everything then it will be a lot easier to trouble shoot.

maz


Poster: John
Dated: Friday April 9 2004 - 21:22:22 BST

jlwood wrote:
John, you're running a little state-of-the-art there. I'm dealing with real people.

Well, I've got a problem with that (not with you, just 'real people'). Folks need to upgrade or they're going to get left behind. The fact that I'm seeing no problem with 5.2.3 is a perfect example.

However, trust me - I do understand the delema. I work in "higher education", and, without a doubt, those folks are the worst in the world for keeping things current - OS, browser, application, virus upgrades - they just don't get the importance, and, of course, the first to complain when they lost some important file(s) because a virus bit them.

The other problem is M$ dropping all development for IE on the Mac. It's a dead product. Eventually the user will get left in the dust as the other browsers continue to move ahead and things just stop working on what they're running.

But - I know you know all this, and it's a losing battle. :?