У меня на экране 2 страницы (на самом деле больше, так как это своего рода проприетарное веб-приложение с несколькими фреймами, и я не могу понять фактически всю структуру)
Я ввожу критерии поиска на странице, нажимаю «Enter» на клавиатуре, поиск выполняется, а другое представление заполняется данными. На этом втором просмотре есть кнопка «Подтвердить», и пользователь должен ее нажать.
Я хочу, чтобы пользователь нажал «Enter» на клавиатуре и «Подтвердить» для выполнения.
Если я нажимаю на поле во втором представлении и нажимаю «Enter», выполняется «Подтвердить», так что это вопрос перемещения фокуса мыши с первой страницы на другую.
Как я могу добиться этого программно?
Я пробовал следующее
<SCRIPT FOR=window event=onload language = "JScript">
var focusField = "<%= controller->component_id %>" + '_' + 'NUMBER';
document.getElementById(focusField).focus();
</SCRIPT>
Курсор все еще в поле ввода на первой странице.
<SCRIPT FOR=window event=onload language = "JScript">
var focusField = "<%= controller->component_id %>" + '_' + 'NUMBER';
alert(document.getElementById(focusField).value);
document.getElementById(focusField).focus();
</SCRIPT>
Значение поля отображается, поэтому код проходит туда
Курсор все еще в поле ввода на первой странице
<SCRIPT FOR=window event=onload language = "JScript">
var focusField = "<%= controller->component_id %>" + '_' + 'NUMBER';
document.getElementById(focusField).focus();
alert('1');
alert('2');
</SCRIPT>
Курсор все еще в поле ввода на первой странице
<SCRIPT FOR=window event=onload language = "JScript">
var focusField = "<%= controller->component_id %>" + '_' + 'NUMBER';
alert('1');
document.getElementById(focusField).focus();
alert('2');
</SCRIPT>
А курсор как-то «чудом» «выдвинул» поле ввода и «Enter» работает на 2-й странице !!!
Почему это ?
Конечно, это не решение, но мне интересно, почему использование предупреждений (но 2, а не 1) достигает моей цели по перемещению фокуса мыши.
Спасибо



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Я нашел способ заставить его работать
<SCRIPT FOR=window event=onload language = "JScript">
function setFocus()
{
var focusField = "<%= controller->component_id %>" + '_' + 'CUSTOMER_STRUCT.BP_NUMBER';
document.getElementById(focusField).focus();
}
window.setTimeout('setFocus()', 40);//1,10,20,30 do not work
</SCRIPT>
Любое объяснение этому?
Он работает на моем рабочем столе. Может быть, он не будет работать на других рабочих станциях (т.е. интервал должен быть больше)?