<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;">