Setting initial focus in html using Javascript - Pocket IE on Windows 2003 Pocket PC

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • dsnyder

    Setting initial focus in html using Javascript - Pocket IE on Windows 2003 Pocket PC

    This HTML has a bit of Javascript at the end that puts the initial
    focus on the userID field. It works great on Windows2000 running IE6,
    but the initial focus never goes to the userID field on Windows 2003
    PocketPC (Windows Mobile) running Pocket IE.

    <html><head><ti tle>WMS - P280WF100 - Login</title><META
    HTTP-EQUIV='expires' VALUE='0'>
    </head>
    <body>
    <form name="frmLogon" action='p280wp1 00' method='get'>
    <table>
    <tr>
    <td>User ID</td>
    <td>
    <input id='userID' name='userID'
    type='text'
    maxlength=10
    size=10[color=blue]
    >[/color]
    </input></td>
    </tr>
    <tr>
    <td>Password</td>
    <td>
    <input id='password' name='password'
    type='password'
    maxlength=10
    size=10[color=blue]
    >[/color]
    </input></td>
    </tr>

    <tr>
    <td colspan=2><cent er><input type='submit' accesskey='L'
    value='Login'></center></input></td>
    </tr>
    </table>
    </form>

    <hr>
    <script language=javasc ript>
    function window.onload() {window.frmLogo n.userID.focus( );}
    </script>
    </body></html>
  • Richard Cornford

    #2
    Re: Setting initial focus in html using Javascript - Pocket IE on Windows 2003 Pocket PC

    dsnyder wrote:[color=blue]
    > This HTML has a bit of Javascript at the end that puts the initial
    > focus on the userID field. It works great on Windows2000 running IE6,
    > but the initial focus never goes to the userID field on Windows 2003
    > PocketPC (Windows Mobile) running Pocket IE.[/color]

    I have only had one short opportunity to examine a Pocket IE but it was
    rapidly obvious that it was not a cut down version of desktop IE (and
    not surprisingly so, as desktop IE is enormous). It seems likely that
    creating code to work on Pocket IE should be done following general
    cross-browser coding principles, so avoiding IE-isms and avoiding any
    reliance on the error correcting behaviour of desktop IE (best achieved
    by validateing HTML source code).

    <snip>[color=blue]
    > <input id='userID' name='userID'
    > type='text'
    > maxlength=10
    > size=10[color=green]
    > >[/color]
    > </input></td>[/color]
    ^^^^^^^^
    Input elements are empty, they do not have a closing tag.

    <snip>[color=blue]
    > ... <center><inpu t type='submit' accesskey='L'
    > value='Login'></center></input> ...[/color]

    The DOM created for scripting from HTML has a tree-like structure, and
    formally valid HTML also has a tree-like structure (allowing an easy
    translation from HTML into a DOM). But above you have and opening CENTER
    tag, and opening INPUT tag, a closing CENTER tag and then a closing
    INPUT tag. The closing INPUT tag is invalid anyway (as I mentioned
    above) but what is the browsers supposed to make of this strange
    overlapping of elements? Desktop IE error-corrects it (it has no choice
    as this is the sort of nonsense HTML that Microsoft Word outputs as a
    matter of course), but I am told that 50% of desktop IE's code is
    error-correcting and then will just not fit into Pocket IE.

    <snip>[color=blue]
    > <script language=javasc ript>[/color]

    Valid HTML 4 requires that script elements have a type attribute,
    rendering the language attribute redundant.

    <script type="text/javascript">
    [color=blue]
    > function window.onload() {window.frmLogo n.userID.focus( );}[/color]
    <snip>

    ECMA 262 (3rd edition) specifies a function declaration as having an
    identifier as a function name, not a property accessor. This is another
    IE-ism, and maybe Pocket IE does not understand it. Cross-browser code
    would assign a function expression to the - window.onload - property.

    Accessing named forms as properties of the global (window) object is not
    cross-browser either. Accessing forms as named members of the -
    document.forms - collection is the most widely (seemingly universally)
    supported mechanism available on HTML browsers.

    window.onload = function(){
    document.forms['frmLogon'].elements['userID'].focus();
    };

    Richard.


    Comment

    • David Snyder

      #3
      Re: Setting initial focus in html using Javascript - Pocket IE on Windows 2003 Pocket PC


      Richard:

      Thanks for the info. I found this bit of code on this web site:
      The Web Design Group's Web Authoring FAQ addresses frequently asked questions related to HTML, images, style sheets, and other Web authoring issues.


      <script type='text/javascript'><!--
      document.frmLog on.userID.focus ();
      //--></script>

      This seems to work in both of my environments and is closer to your
      example than my original code. I'll try your example and see how it
      goes.


      *** Sent via Developersdex http://www.developersdex.com ***
      Don't just participate in USENET...get rewarded for it!

      Comment

      Working...