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:29
submenus hidden by Java Applet (form hiding ?)
Poster: lunagraphica
Dated: Wednesday September 12 2007 - 19:23:46 BST
From the research I've done, it seems there is not real solution to this, because Applets don't work with z-index.
I'd like to simply hide the applet when the submenu pops up. I've seen references in the forum to a "form hiding" technique, but the links are broken. Can someone please explain how to do this?
Re: submenus hidden by Java Applet (form hiding ?)
Poster: Ruth
Dated: Friday September 14 2007 - 17:11:19 BST
Hi,
I have no idea about that mm_divHide function. That is very old. There is now available a divhider.js file, it is at the bottom called the Object hiding module. I'm not really sure this will work for applets, but...
http://www.milonic.com/menumodules.php
To use it you would do the following. This is just an example I had and uses a form setup
Code:
<SCRIPT language=JavaScript src="divhider.js" type=text/javascript></SCRIPT>
<div id=formdiv1 name=formdiv1>
<form>
<select>
<option>Testing to see - form in div with divhider.js file called
<option>if the menu will
<option>sit on top of
<option>select boxes
</select>
</form>
<div id=formdiv1 name=formdiv1>
<form>
<select>
<option>Testing to see - form in div with divhider.js file called
<option>if the menu will
<option>sit on top of
<option>select boxes
</select>
</form>
Then in the divhider.js module you need to code the main/sub menu item names that have submenus that drop over the applet. I used the downloaded menu as the set up and in the divhider.js file and at the M_hideMenus= line had this [all one line, no wrap or it will break the code]
Code:
M_hideMenus = "Samples->formdiv1;Milonic->formdiv1;Partners->formdiv1;Links->formdiv1;MyMilonic->formdiv1;Anti Spam->formdiv1;"
As I said I do not know if this will work with applets or not. Nothing works on things like media players and I don't know if applets are the same. Flash objects can be hidden using their own setups setting wmode to transparent.
One thing I was thinking might work, but haven't tested, is to set up the applet area as an iframe, then put the applet on the page in the iframe. The menu drops over iframes, I'm not sure given the page is in an iframe if it would go over the applet or not. I'll test to see what happens once I get an applet
Ruth
Re: submenus hidden by Java Applet (form hiding ?)
Poster: lunagraphica
Dated: Sunday September 16 2007 - 3:38:55 BST
no joy...
apparently Applets are not well behaved with regard to display, even when contained in a div. I can hide the div, but the Applet is still visible.
I spoke too soon - it worked!
Poster: lunagraphica
Dated: Sunday September 16 2007 - 4:17:31 BST
It appears I had a bug in my code, but once I got it sorted out, I can indeed hide an Applet contained in a div.
Here's the proof:
http://www.apropos-logic.com/nc/test.html
Thank you, Ruth!
Re: submenus hidden by Java Applet (form hiding ?)
Poster: luisraposo
Dated: Sunday September 16 2007 - 20:35:31 BST
hello,
I am trying to do the same with an ActiveX object, which is taking a whole 'contents' frame.
As I can't get it to work with the (sub-)menus, since it flickers too much (fixMozzila & zIndex didn't do the trick), I am now moving to the "hide" solution..
- I am calling the "divhider.js" script on the .htm (actually on both, the 'navigation' and the 'contents' frame)
- the M_hideMenus variable is changed on the script
but it doesn't do nothing..
actually, I am wondering, when is the "M_hideLayer" function called?
(I added some debug code on it, but nothing comes out.. )
your help is appreciated,
luis
Re: submenus hidden by Java Applet (form hiding ?)
Poster: Ruth
Dated: Monday September 17 2007 - 9:30:57 BST
Hi Luis,
I'm sorry, but if you're mousing over the main menu and trying to hide the div on a different frame, I don't believe that going to happen. If this is at all possible through some kind of programming I think you'll have to contact Milonic for that.
_______________
lunagraphica,
One other thing about using the divhider module. You might do a screen capture of that beginning applet [or anything else you want, and then place that in the same size div right behind the applet div, then when you hid the applet you'll see a div with a screen capture of the applet. Hope that made sense.
Ruth
Re: submenus hidden by Java Applet (form hiding ?)
Poster: luisraposo
Dated: Monday September 17 2007 - 21:47:48 BST
Ruth/lunagraphica,
thanks for keeping up with this,
I dared myself to a bit of coding on the divhider.js
Code:
M_hideMenus = "cracker->PI_DISPLAY;"
function M_hideLayer(_mnu,_show){
//if(op7||ie55||ns6||ns7)return
M_hdar=M_hideMenus.split(";");
for(_Ma=0;_Ma<M_hdar.length;_Ma++){
M_hdarI=M_hdar[_Ma].split("->")
M_mnu=getMenuByName(M_hdarI[0]);
if(M_mnu>-1&&M_mnu==_mnu){
/*
M_gm=gmobj(M_hdarI[1])
if(_show){
M_gm.style.visibility="hidden"
}
else{
M_gm.style.visibility="visible"
}
*/
var _div = top.window.frames["content"].document.getElementById(M_hdarI[1]);
if (_show){
_div.style.visibility = 'visible';
}
else{
_div.style.visibility = 'hidden';
}
}
}
}
function M_hideLayer(_mnu,_show){
//if(op7||ie55||ns6||ns7)return
M_hdar=M_hideMenus.split(";");
for(_Ma=0;_Ma<M_hdar.length;_Ma++){
M_hdarI=M_hdar[_Ma].split("->")
M_mnu=getMenuByName(M_hdarI[0]);
if(M_mnu>-1&&M_mnu==_mnu){
/*
M_gm=gmobj(M_hdarI[1])
if(_show){
M_gm.style.visibility="hidden"
}
else{
M_gm.style.visibility="visible"
}
*/
var _div = top.window.frames["content"].document.getElementById(M_hdarI[1]);
if (_show){
_div.style.visibility = 'visible';
}
else{
_div.style.visibility = 'hidden';
}
}
}
}
. the code was not running because (ie55) is 'true' on my IE6, and the function stopped, returning nothing
. to have the sub-menus names recognized in M_mnu I had to add the menu-data-sub_menus.js (my sub-menus on the 'contents' frame) to the 'navigation' .html frame
. the code now recognizes a DIV in a separate frame (while it can be improved to cycle through every frame and look for the object M_hdarI[1]..)
It is working to hide de div
but.. somehow it does not make the DIV visible again, _show is never "1" besides the initial startup
any help would be much appreciated,
luis
ps: thanks for your tip on the "screen capture", it is a nice idea to have something there instead of "blank"
Re: submenus hidden by Java Applet (form hiding ?)
Poster: Ruth
Dated: Monday September 17 2007 - 23:04:11 BST
Hi Luis,
Wow, that is great. I will post this to Milonic. Unfortunately I can't do the js stuff so I have no idea why it's not reshowing the div, unless it's because you are on a different frame when you mouseOff. Maybe you need some kind of extra code to tell it that??? I know in the frames menu, there's an off and onfunction for the mouse. Of course, what do I know
Ruth
Re: submenus hidden by Java Applet (form hiding ?)
Poster: luisraposo
Dated: Tuesday September 18 2007 - 11:33:50 BST
hello,
I'm one step closer to happiness
the divhider.js module now works across frames, independent of frame name
and the DIV is made visible or not depending on the menu selection
Code:
M_hideMenus = "cracker->PI_DISPLAY;poliolefinas->PI_DISPLAY;"
function M_hideLayer(_mnu,_show){
//if(op7||ie55||ns6||ns7)return
M_hdar=M_hideMenus.split(";");
for(_Ma=0;_Ma<M_hdar.length;_Ma++){
M_hdarI=M_hdar[_Ma].split("->")
M_mnu=getMenuByName(M_hdarI[0]);
if(M_mnu>-1&&M_mnu==_mnu){
// M_gm=gmobj(M_hdarI[1])
var _frames = top.window.frames;
for( var i=0; i < _frames.length; i++ )
{
M_gm = _frames[i].document.getElementById(M_hdarI[1]);
if (M_gm){
if(_show){
M_gm.style.visibility='hidden';
}
else{
M_gm.style.visibility='visible';
}
}
}
}
}
}
function M_hideLayer(_mnu,_show){
//if(op7||ie55||ns6||ns7)return
M_hdar=M_hideMenus.split(";");
for(_Ma=0;_Ma<M_hdar.length;_Ma++){
M_hdarI=M_hdar[_Ma].split("->")
M_mnu=getMenuByName(M_hdarI[0]);
if(M_mnu>-1&&M_mnu==_mnu){
// M_gm=gmobj(M_hdarI[1])
var _frames = top.window.frames;
for( var i=0; i < _frames.length; i++ )
{
M_gm = _frames[i].document.getElementById(M_hdarI[1]);
if (M_gm){
if(_show){
M_gm.style.visibility='hidden';
}
else{
M_gm.style.visibility='visible';
}
}
}
}
}
}
but, the DIV is hidden only for the time the main menu option is enabled, after a few seconds only the submenu is enabled, and I get back the DIV visible, with the flickering when going through the submenu options..
How can I keep the main menu option "on" for all the time the submenu is visible?
luis
Re: submenus hidden by Java Applet (form hiding ?)
Poster: luisraposo
Dated: Saturday September 22 2007 - 23:08:05 BST
hello,
here go my findings:
- the main menu option only remains 'selected' if the submenus are on the same menu-data file
(thus making the divhider.js module working as expected)
- to have the main (horizontal) menu and sub-menus (drop-down) working on the same file (see above) I had to change from frames into Iframes (since the submenus would not be visible inside a page header frame)
- on the menu item definitions, we can user either target=iframe_name, or call openIframe
Code:
aI("text=xxx;url=`javascript:openIFrame('content','/xxx.htm')`;");
- now that I have Iframes setup, and breadCrumbs is working as expected, highlighting items from main menu to submenu option, the page definitions are not working : neither pageimage nor pagebgimage
Code:
pageimage="/images/pagematch_marker.gif";
pagecolor="#000000";
//pagebgcolor="#";
pagebgimage="/images/pagematch_submenus_blue-white-blue.jpg";
pagecolor="#000000";
//pagebgcolor="#";
pagebgimage="/images/pagematch_submenus_blue-white-blue.jpg";
> according to http://www.milonic.com/menufaq.php#linkHighlight, calling pagehighlight would do the trick..
but
Code:
aI("text=Armazenagem;url=`javascript:highlightme();openIFrame('content','/OLEFINAS/CRACKER/Armazenagem.htm')`;clickfunction=mm_breadCrumbs();separatorsize=1;");
throws error: '_I.19' is null or not an object
here goes the highlightme function
Code:
function highlightme()
{
_I=_mi[_itemRef];
if(_I[19])_I[7]=_I[19];
if(_I[18])_I[8]=_I[18];
itemOff(_itemRef);
}
{
_I=_mi[_itemRef];
if(_I[19])_I[7]=_I[19];
if(_I[18])_I[8]=_I[18];
itemOff(_itemRef);
}
Can you help me with this final step to have this amazing menu fully working?
thanks,
luis
Re: submenus hidden by Java Applet (form hiding ?)
Poster: luisraposo
Dated: Sunday September 23 2007 - 1:41:57 BST
hum.. I see now.. what highlightme() does..
the indexes are no more than the CodeRefs from http://www.milonic.com/itemproperties.php
I should have looked better..
now, the only thing missing is to figure out how to "un-"highlight the menuitems..
a couple of sleeping hours will do magic
luis
Re: submenus hidden by Java Applet (form hiding ?)
Poster: luisraposo
Dated: Sunday September 23 2007 - 21:01:13 BST
hello again,
I have done some changes to the breadCrumbs function, which is now using the page settings when 'highlighting' menuitems (the images are also taken care)
Code:
//var mm_breadCrumbAnchor = -1;
var currentItem = 0; // "Geral"
function myPageMatch()
{
var selectedItem = _itemRef;
var i = currentItem;
if (mm_closeBcMenus) $Z();
if (i > -1)
do {
/*
_mi[i][7] = _m[_mi[i][0]][6].offbgcolor;
_mi[i][8] = _m[_mi[i][0]][6].offcolor;
*/
// _m == menu , _mi == menu_item
// _m[][6] == style
// _mi[8] == offcolor , _mi[7] == offbgcolor , _mi[29] == image , _mi[46] == bgimage
_mi[i][8] = _m[_mi[i][0]][6].offcolor ? _m[_mi[i][0]][6].offcolor : null;
_mi[i][7] = _m[_mi[i][0]][6].offbgcolor ? _m[_mi[i][0]][6].offbgcolor : null;
_mi[i][29] = _m[_mi[i][0]][6].image ? _m[_mi[i][0]][6].image : null;
_mi[i][46] = _m[_mi[i][0]][6].bgimage ? _m[_mi[i][0]][6].bgimage : null;
BDMenu(_mi[i][0]);
i = getParentItemByItem(i);
} while (!isNaN(i) && mm_highlightParentItems);
}
i = currentItem = selectedItem;
do {
/*
_mi[i][7] = _mi[i][19];
_mi[i][8] = _mi[i][18];
*/
// _m == menu , _mi == menu_item
// _m[][6] == style
// _mi[8] == offcolor , _mi[7] == offbgcolor , _mi[29] == image , _mi[46] == bgimage
if (_m[_mi[i][0]][6].pagecolor) _mi[i][8] = _m[_mi[i][0]][6].pagecolor;
if (_m[_mi[i][0]][6].pagebgcolor) _mi[i][7] = _m[_mi[i][0]][6].pagebgcolor;
if (_m[_mi[i][0]][6].pageimage) _mi[i][29] = _m[_mi[i][0]][6].pageimage;
if (_m[_mi[i][0]][6].pagebgimage) _mi[i][46] = _m[_mi[i][0]][6].pagebgimage;
BDMenu(_mi[i][0]);
i = getParentItemByItem(i);
} while (!isNaN(i) && mm_highlightParentItems);
}
var currentItem = 0; // "Geral"
function myPageMatch()
{
var selectedItem = _itemRef;
var i = currentItem;
if (mm_closeBcMenus) $Z();
if (i > -1)
do {
/*
_mi[i][7] = _m[_mi[i][0]][6].offbgcolor;
_mi[i][8] = _m[_mi[i][0]][6].offcolor;
*/
// _m == menu , _mi == menu_item
// _m[][6] == style
// _mi[8] == offcolor , _mi[7] == offbgcolor , _mi[29] == image , _mi[46] == bgimage
_mi[i][8] = _m[_mi[i][0]][6].offcolor ? _m[_mi[i][0]][6].offcolor : null;
_mi[i][7] = _m[_mi[i][0]][6].offbgcolor ? _m[_mi[i][0]][6].offbgcolor : null;
_mi[i][29] = _m[_mi[i][0]][6].image ? _m[_mi[i][0]][6].image : null;
_mi[i][46] = _m[_mi[i][0]][6].bgimage ? _m[_mi[i][0]][6].bgimage : null;
BDMenu(_mi[i][0]);
i = getParentItemByItem(i);
} while (!isNaN(i) && mm_highlightParentItems);
}
i = currentItem = selectedItem;
do {
/*
_mi[i][7] = _mi[i][19];
_mi[i][8] = _mi[i][18];
*/
// _m == menu , _mi == menu_item
// _m[][6] == style
// _mi[8] == offcolor , _mi[7] == offbgcolor , _mi[29] == image , _mi[46] == bgimage
if (_m[_mi[i][0]][6].pagecolor) _mi[i][8] = _m[_mi[i][0]][6].pagecolor;
if (_m[_mi[i][0]][6].pagebgcolor) _mi[i][7] = _m[_mi[i][0]][6].pagebgcolor;
if (_m[_mi[i][0]][6].pageimage) _mi[i][29] = _m[_mi[i][0]][6].pageimage;
if (_m[_mi[i][0]][6].pagebgimage) _mi[i][46] = _m[_mi[i][0]][6].pagebgimage;
BDMenu(_mi[i][0]);
i = getParentItemByItem(i);
} while (!isNaN(i) && mm_highlightParentItems);
}
currentItem is zero because in the beggining I have the first main menu option appearing "selected"
(by the way, beside setting manually the menu item properties, to become "selected", I had to add itemOn / itemOff, so the colors/images were loaded.. - buildAllMenus = true; didn't solve it also)
Code:
itemOn(0);
setTimeout('itemOff(0)', 1000);
setTimeout('itemOff(0)', 1000);
the Timeout creates a nice effect when loading the page, like if the user just selected that menu item
I am now using both the 'divhider' and the 'breadCrumbs'.. and it works fine
but, when I select an option on the menu, the DIV is made visible with the 'old' activeX object, and then the contents page is loaded with a 'new' activeX object..
I have been trying to prevent the DIV from being made visible again before the new object is loaded, but without sucess..
Do you have any ideas on how can I accomplish this?
luis
Re: submenus hidden by Java Applet (form hiding ?)
Poster: sandra nair
Dated: Tuesday October 9 2007 - 12:44:18 BST
Hi luis,
I have got a similar problem .My menu items are flickering on mouse over if some activecomponents (a word doc or a crystal report)are there in the body page I believed that is related to the browser but it seems you got some solution for the same.It will be really great if could help me in solving the same.
I am using a frameset based menu. Which is working fine except over the acive x components.
Thank You
Sandra Nair