Javascript Tips

* How to enable Javascript support
* Javascript calls limitations
* Dynamic menu changing
* How to call public functions?

To enable Javascript support:

* add MAYSCRIPT to the applet tag;
* place a javascript call starting with javascript: as the item link;
* set the target to "_"
as shown in the following example :
<applet code="apMenu.class" Width="125" Height="156" MAYSCRIPT>
      <param name="menuItems" value="
              {Script1,javascript:somefunction('param1','param2'),_}
              {Script2,javascript:open('index.html','_blank'),_}
              "> 
</applet>
To top

Javascript calls limitations:

* Value and variable assignments are not supported
* Empty strings in arguments are not supported
* Use single quotes (') instead of double quotes (") for arguments
* Arguments are treated as String literals during the function call. Therefore, they must be converted to the appropriate format using standard Javascript methods such as parseInt(String) and parseFloat(String).

The best way to overcome most of the limitations is placing the instructions within a javascript function:

.....
function open_w(arg){
 if (confirm('Open a new window?') == true){
      open(arg,'window','scrollbars,resizeable=yes,width=680,height=600')
    }
}
.....
      <param name="menuItems" value="
              {Open window,javascript:open_w('index.html'),_}"> 
.....
To top

Dynamic menu changing

Since 2.73 version of Apycom Java Menus the applets have some public function those allow to modify the menu "on fly" without the page reloading and refreshing. The following public function are available.
For Drop Down Menu, Website Buttons , XP Web Buttons, XP Drop Down Menu, Navigation Bar Tabs:
setPressedItem(number_of_item)
sets a new highlighted/pressed item, example: setPressedItem(3)

getPressedItem()
returns a highlighted/pressed item, example: getPressedItem()

For Drop Down Menu and XP Drop Down Menu:
changeItem('index_of_item','new_item_text','new_link','new_target')
changes an item, example: changeItem('3_1_9','Apycom Home','http://www.apycom.com','_self')
Note the "number_of_item" and "index_of_item" parameters include separators.

setCheckbox('index_of_item','flag')
sets a submenu checkbox item to a state difined by 'flag': 'true' checks item, 'false' unchecks it
example: setCheckbox('2_4_1','true')
getCheckbox('index_of_item')
returns a checkbox state, 'true' - item is in checked state, 'false' - item is in unchecked state
example: getCheckbox('2_4_1')
Note setCheckbox and getCheckbox work only with submenu items and don't work with top-level items. Also the item must defined as a checkbox in the 'menuItems' param, i.e. starts with "_V" or "_0"

To top

How to call these functions?

To call the public functions:
* add MAYSCRIPT parameter to the applet tag;
* name an applet instance by adding name parameter;
as shown in the following example :
<applet name=myap1 code=apPopupMenu.class Width=125 Height=156 MAYSCRIPT>
.....
</applet>
* and then call the function via javascript;
for example :
<a href="javascript:document.myap1.changeItem('3_2','Text','test.html','_blank')">
Click here!</a>
To top