Javascript:在函数内调用函数时 window.location.href 不重定向

标签 javascript

window.location.href 在单击按钮时将浏览器重定向到 stackoverflow.com,但在输入文本字段中按“Enter”时不会,尽管两个事件监听器使用相同的函数 visitStack。

如果这有帮助,将 form 标签更改为 div 标签会以某种方式使它起作用,但这当然不是语义上的。

将最后一行中的“keydown”更改为“click”,并将 visitStack(e) 立即移动到 keyDownTextField(e) 中,使其也能正常工作。

所以 keydown 和/或表单标签似乎是这里的罪魁祸首,但我不确定。

<form>
<input id="iamtext" type="text" />
<input id="gobutton" type="button" value="Overflow" />              
</form>


<script type="text/javascript">
    document.getElementById("gobutton").addEventListener("click", visitStack, false);

    function visitStack(e) {
        e.stopPropagation();                
        window.location.href = "http://www.stackoverflow.com";
    }

    function keyDownTextField(e) {
        var keyCode = e.keyCode;
        if(keyCode==13) {
            alert("Entered!");
            visitStack(e);
        }
    }

    document.getElementById("iamtext").addEventListener("keydown", keyDownTextField, false);
</script>

最佳答案

在 HTML 表单的文本输入字段中点击 ENTER 相当 different effects在不同的浏览器上。

在您的情况下,我假设表单是在按下 ENTER 时提交的。由于您没有指定任何action,表单将提交到导致重新加载的同一页面。

关于Javascript:在函数内调用函数时 window.location.href 不重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2369635/

相关文章:

javascript - 在编写 Protractor spec.js 文件的测试用例中从浏览器获取 session 值

javascript - 使用 create-react-app 创建库

c# - 自定义客户端消息

javascript - 我需要在 jquery 中连接两个变量

javascript - 如何让 z-index 与 jQuery 插件 Cycle 配合使用

javascript - Dojo - 在 header 外添加外部样式表

Javascript 到 Python,在 for 循环的条件和最终表达式中按位移位

javascript - 向后滚动时 Jquery 不工作

javascript - 不知道为什么触摸事件触发两次

javascript - 将属性分配给 javascript 属性的最佳方法