![]() |
| ||
| Javascript not working under Mac! Why O why?! Hello, I have a javascript code (a part of it is in php) that populates a pull-down menu. It works perfectly well with Explorer, Netscape and Firefox under Windows. But impossible to make it work with Explorer or Safari under Mac!!! Is javascript different between windows and mac? Here's the code, if anyone has the slightest idea or suggestion. Thanks a lot in advance! Gaston. <SCRIPT type="text/javascript"> function MultiDimensionalArray(iRows,iCols) { var i; var j; var a = new Array(iRows); for (i=0; i < iRows; i++) { a[i] = new Array(iCols); for (j=0; j < iCols; j++) { a[i][j] = ""; } } return(a); } function updateDirMenu(form,groupMenu,selectedIndex,selectedGroup, startDirValue){ var numdiringroup = Array() var dirArray=MultiDimensionalArray(35,0) var new_index=-1; var groupPrefs = "<?=$group_prefs?>"; var change = 0; if (selectedGroup == undefined) { change = 1 if (groupPrefs != "") { selectedGroup = groupPrefs} } <?php $x = 0; $numdiringroup = 0; //$array = array( 'list', 'of', 'elements' ); while ($x < $num_groups) { $xx = 0; foreach ( $filelist[$x] as $element ) { ?> if (<?=$x?> == selectedIndex) { <? if ($folder_prefs <> "") { if ($element == $folder_prefs) { print "new_index=".$xx.";";} } ?> } //if $x==selectedIndex <? $xx = $xx + 1; ++$numdiringroup; print "dirArray[".$x."].push('$element');"; } ++$x; print "numdiringroup.push('$numdiringroup');"; $numdiringroup = 0; } ?> for(i = 0; i < form.elements.length; i++){ if(form.elements[i] == groupMenu){ var dirMenu = form.elements[i+1] break } } var thelength // thelength is number of options the menu will have thelength = numdiringroup[selectedIndex] dirMenu.options.length = thelength for(i=0; i<thelength; i++){ // if number of current options is less than options to be displayed, write more options dirMenu.options[i].value=dirArray[selectedIndex][i] dirMenu.options[i].text=dirArray[selectedIndex][i] } if(change == 1) { if(selectedGroup != groupPrefs || new_index<0) { if(thelength > 0) { if(dirMenu.options[0].value == "Home") { dirMenu.selectedIndex = 1 } //dirmenu else dirMenu.selectedIndex = 0 } //if thelength } //if selectedGroup else dirMenu.selectedIndex = new_index } //if change else for(i=0; i<thelength; i++){ if(dirMenu.options[i].value == startDirValue) { dirMenu.selectedIndex = i} } //for change = 0 } </SCRIPT> |
| ||
| Re: Javascript not working under Mac! Why O why?! There are no difference in JavaScript between platforms. Your problem can be that Mac is running only on IE5( there has not been any upgrade for past 3 years also) and you tested on pc IE6, I beleave. Last year as school project I did website cross platform but got hell of troubles. And Safari I don't know, I do not use Safari. |
| ||
| Re: Javascript not working under Mac! Why O why?! Safari is a compliant browser so you should not have trouble getting JavaScript to work. My guess is that there is a syntax error that the other browsers are ignoring. have you tried validating the page? |
| ||
| Re: Javascript not working under Mac! Why O why?! Thanks peter_budo and bkendall for your suggestions. The page has been validated with the w3c validator and it's html 4.01 validator. I looked for a javascript validator but couldn't find any. I also don't know where to find a previous version of explorer (version 5) to test my page. Or is there a browser that has the exact same behaviour as the Explorer 5 version? When will all the browsers be compatible?!! (this is just a rhetoric question!) :) Thanks again. Gaston |
| ||
| Re: Javascript not working under Mac! Why O why?! For a javascript verifier, try this http://www.crockford.com/javascript/jslint.html It can check your html as well, but its only got basic html support and hence is much stricter. Put your js scripts in and it will tell you plenty about it. any editing you have to do to make it verify should also be done for your website to run sanely. |
| ||
| Re: Javascript not working under Mac! Why O why?! it would probably be more usefull if you ran the output of the php generation through jslint. also, you seem to hardly ever use ';' to terminate lines... so you'll be entering lots of these to get jslint to parse your script. |
| All times are GMT -4. The time now is 3:20 am. |
Forum system based on vBulletin Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
©2003 - 2008 DaniWeb® LLC