Насколько я могу судить, это ошибка в IE. Кажется, это связано со временем. Я нашел работу вокруг, но она не очень элегантна и не проливает свет на то, что может быть не так.
Возможно, другой пользователь получит некоторое представление о моей работе. В любом случае это работает для меня:
function setFocus() {
setTimeout(tryFocus,100);
}
function tryFocus() {
document.AForm.AText.select();
}
В качестве бонуса проблема в том, что FireFox не работает, когда вы отправляете одно и то же значение дважды подряд, заключается в том, что он не отправляет ваш второй GET, поскольку он идентичен предыдущему GET. Вам нужен кэш-бастер. Поэтому измените свою форму, чтобы она выглядела так:
<form name="AForm" id="AForm" action="index.html#ATag" method="get" onsubmit="bustCache();">
<input type="text" name="AText" id="AText" value="Enter text here." >
<input type="hidden" name="AHidden" id="AHidden" value="">
<input type="submit" value="OK">
</form>
Измените свой скрипт на это:
function setFocus() {
setTimeout(tryFocus,100);
}
function tryFocus() {
document.AForm.AText.select();
}
function bustCache() {
document.AForm.AHidden.value = (new Date()).getTime();
}
Это далеко не идеально, но должно работать для ваших целей.