【问题标题】:javascript enter key redirection in text boxjavascript在文本框中输入键重定向
【发布时间】:2012-02-03 04:42:47
【问题描述】:

我有一个简单的文本框,我希望在我输入内容时重定向页面。

<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');" />

它适用于所有浏览器。

谁能解释一下这种浏览器行为?

【问题讨论】:

    标签: javascript internet-explorer google-chrome cross-browser window.open


    【解决方案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 提到的重定向。

    【讨论】:

    • 这解决了我在 IE10 中的问题。特别是行 window.event.returnValue=false;
    【解决方案2】:

    尝试使用 window.location.href 这在重定向中应该可以正常工作。

    例子:

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

    此外,在 keyup 上使用它是一个更好的选择。

    【讨论】:

    • 谢谢。但想知道更多关于它发生的原因。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多