1

У меня есть простое текстовое поле, и я хочу сделать страницу перенаправленной, когда я ввожу что-то в нее.javascript введите ключевое перенаправление в текстовое поле

<input type="text" onkeydown="window.open('http://www.example.com', '_self');" /> 

Однако, когда я нажимаю Enter ключ в этом текстовом поле, это не идет на новую страницу. Но это происходит, когда я нажимаю клавиши типа A, B, 1, 2 ... Это происходит в Chrome, Firefox и IE9 для меня, а не в IE8.

Но когда я помещаю в него функцию alert, но нажатие клавиши Enter после того, как я уволил окно предупреждения, он перенаправляет успешно.

<input type="text" onkeydown="alert();window.open('http://www.example.com', '_self');" /> 

Он используется во всех браузерах.

Может ли кто-нибудь объяснить это поведение браузера?

ответ

0

Попробуйте использовать window.location.href, это должно работать нормально в перенаправлении.

Пример:

<input type="text" onkeyup="window.location.href = 'http://www.example.com';" /> 

Кроме того, использование его на KeyUp является лучшим вариантом.

+0

Спасибо. Но хотите узнать больше о том, почему это происходит. – bxx

1

Я думаю, что это поведение связано с тем, что вы не установили return false. попробовать, как это в вашем коде:

function navigate() 
{ 
    window.location.href = 'http://www.google.com'; 
    window.event.returnValue=false; 
} 

в HTML использовании, как это:

<input type="text" onkeydown="navigate();" /> 

Надеется, что это поможет.
вместо window.open использование window.location.href для перенаправления как muzzafar упомянутый.

+0

Это разрешило проблему для меня в IE10. В частности, строка window.event.returnValue = false; – phil

Смежные вопросы