<br style="font-family: courier new,monospace;"><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">On Sat, Jul 16, 2011 at 3:59 PM, Olaf Alders <<a href="mailto:olaf.alders@gmail.com">olaf.alders@gmail.com</a>> wrote:</span><br style="font-family: courier new,monospace;">

<span style="font-family: courier new,monospace;">></span><span style="font-family: courier new,monospace;">> On 2011-07-15, at 3:30 PM, <a href="mailto:arocker@vex.net">arocker@vex.net</a> wrote:</span><br style="font-family: courier new,monospace;">

<span style="font-family: courier new,monospace;"></span><span style="font-family: courier new,monospace;">> ></span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">> >> Any suggestions for how to accomplish that (besides stripping</span><br style="font-family: courier new,monospace;">

<span style="font-family: courier new,monospace;">> >> my app back down to the bare minimum, and building it back</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">> >> up on each browser till I find out what breaks them?)</span><br style="font-family: courier new,monospace;">

<span style="font-family: courier new,monospace;">> ></span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">> > It'll have to be something like that; rather than chopping up the code,</span><br style="font-family: courier new,monospace;">

<span style="font-family: courier new,monospace;">> > you could save a generated page and submit smaller subsets of it until it</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">> > stops breaking.</span><br style="font-family: courier new,monospace;">

<span style="font-family: courier new,monospace;"></span><span style="font-family: courier new,monospace;">></span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">> Before you start slicing your markup, have you validated your pages?</span><br style="font-family: courier new,monospace;">

<span style="font-family: courier new,monospace;">></span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">> <a href="http://validator.w3.org">http://validator.w3.org</a></span><br style="font-family: courier new,monospace;">

<br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">No, I hadn't.</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">...I tested a few of my (generated) pages this morning, and it found a few stupid<br>

mistakes/inconsistencies</span><span style="font-family: courier new,monospace;">, but none fixed the 'weird behavior'  I was seeing.</span><br style="font-family: courier new,monospace;"><br style="font-family: courier new,monospace;">

<span style="font-family: courier new,monospace;">But as a followup to my own message... Here's what I've since discovered:</span><br style="font-family: courier new,monospace;"><br style="font-family: courier new,monospace;">

<span style="font-family: courier new,monospace;">1/ I was having trouble with a Javascript function that used setTimeout() to</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">   create a countdown clock on the browser.  The basic code is below.</span><br style="font-family: courier new,monospace;">

<br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">   Note that there is a text field and also a function both called 'tmo'.</span><br style="font-family: courier new,monospace;">

<span style="font-family: courier new,monospace;">   The 'mobile Firefox' was apparently getting confused,<br>   (whereas all other browsers (over the last 12 years) don't have an issue).</span><br><br style="font-family: courier new,monospace;">

<span style="font-family: courier new,monospace;">   The workaround/fix was to rename either the field,<br>   or the function so that they were unique.</span><br style="font-family: courier new,monospace;"><br style="font-family: courier new,monospace;">

<span style="font-family: courier new,monospace;">...</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;"><INPUT TYPE="text" NAME="tmo" VALUE="" SIZE=5></span><br style="font-family: courier new,monospace;">

<span style="font-family: courier new,monospace;">...</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;"><script type="text/javascript"></span><br style="font-family: courier new,monospace;">

<br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">function tmo (time) {</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">          s = time.split(":");</span><br style="font-family: courier new,monospace;">

<span style="font-family: courier new,monospace;">      count = (parseInt(s[0], 10) * 60) + parseInt(s[1], 10);</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">          if (count > 0) {</span><br style="font-family: courier new,monospace;">

<span style="font-family: courier new,monospace;">              --count;                                        // reduce the remaining time</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">             min = Math.floor(count/60).toString();          // get the number of minutes as a string</span><br style="font-family: courier new,monospace;">

<span style="font-family: courier new,monospace;">              if (min.length == 1) { min = " " + min; }     // pre-pend a space if necessary</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">                 sec = count % 60;</span><br style="font-family: courier new,monospace;">

<span style="font-family: courier new,monospace;">              sec = sec.toString();</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">                    if (sec.length == 1) { sec = "0" + sec; }     // get the fractional seconds as a string and prepend a zero if necessary</span><br style="font-family: courier new,monospace;">

<span style="font-family: courier new,monospace;">              time = min + ":" + sec;</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">                str = "tmo(\"" + time + "\");";                                   // format a string that looks like the function we need to schedule</span><br style="font-family: courier new,monospace;">

<span style="font-family: courier new,monospace;">              setTimeout(str, 1000);                                          // and schedule it to run 1 second from now</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">              document.f1.tmo.value = time;                                   // update the screen with the new timeout value</span><br style="font-family: courier new,monospace;">

<span style="font-family: courier new,monospace;">  } else {                                                                                                                                                                                    // we've timed out...</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">                top.document.location = "/nia/index.html";    // so point the user back to the login screen</span><br style="font-family: courier new,monospace;">

<span style="font-family: courier new,monospace;">      }</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">}</span><br style="font-family: courier new,monospace;"><br style="font-family: courier new,monospace;">

<span style="font-family: courier new,monospace;">tmo("2:00");                                                        // start the timer going</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;"></script></span><br style="font-family: courier new,monospace;">

<br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">2/ It seems that there is a bug in Firefox (mobile) w.r.t. frames.<br>   They doesn't work! (yet)</span><br style="font-family: courier new,monospace;">

<span style="font-family: courier new,monospace;">   Apparently it is a known bug, and will be 'fixed in the next release'.</span><br style="font-family: courier new,monospace;"><br>---------------<br><br style="font-family: courier new,monospace;">

<span style="font-family: courier new,monospace;">Another general observation for people building pages for mobile/table browsers...</span><br style="font-family: courier new,monospace;"><br style="font-family: courier new,monospace;">

<span style="font-family: courier new,monospace;">Don't rely on being able to scroll horizontally on 'wide' pages!</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">Some browsers  ('cough') Firefox allow you to scroll horizontally to get</span><br style="font-family: courier new,monospace;">

<span style="font-family: courier new,monospace;">at Firefox features, so when you try to scroll to see the rest of your page's width,</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">the browser instead scrolls itself so you can get to the browser's options.</span><br style="font-family: courier new,monospace;">

<br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">Hope this helps someone else.</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">Fulko</span><br style="font-family: courier new,monospace;">

<br style="font-family: courier new,monospace;"><br style="font-family: courier new,monospace;">