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

D

dsnyder

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><title>WMS - P280WF100 - Login</title><META
HTTP-EQUIV='expires' VALUE='0'>
</head>
<body>
<form name="frmLogon" action='p280wp100' method='get'>
<table>
<tr>
<td>User ID</td>
<td>
<input id='userID' name='userID'
type='text'
maxlength=10
size=10</input></td>
</tr>
<tr>
<td>Password</td>
<td>
<input id='password' name='password'
type='password'
maxlength=10
size=10</input></td>
</tr>

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

<hr>
<script language=javascript>
function window.onload(){window.frmLogon.userID.focus();}
</script>
</body></html>
 
R

Richard Cornford

dsnyder said:
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.

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).

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

... <center><input type='submit' accesskey='L'
value='Login'></center></input> ...

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.

<script language=javascript>

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

function window.onload(){window.frmLogon.userID.focus();}
<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.
 
D

David Snyder

Richard:

Thanks for the info. I found this bit of code on this web site:
http://www.htmlhelp.com/faq/html/all.html

<script type='text/javascript'><!--
document.frmLogon.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.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,989
Messages
2,570,207
Members
46,782
Latest member
ThomasGex

Latest Threads

Top