window.open('url', '_self')无效

4

我想打开一个新页面以替换当前页面,我发现应该将第二个参数放在_self上,但什么也没发生... 顺便说一句,如果我使用_blank参数或者将其留空,它会在新页面中打开。函数的其余部分工作良好,但我找不到关闭当前页面并打开我想要的新页面的方法。 这是调用函数的javascript和html按钮。

    <button id="rgstr_btn" type="submit" class="btn btn-info" onClick="store()">Register</button>   
      <script>
                function store() {
                localStorage.setItem('nome', nome.value);
                localStorage.setItem('pw', pw.value);
                window.open('url', '_self');
            }
</script>

1
为什么不直接设置window.location.href - Pointy
这个按钮是否位于form标签中?如果是,则添加type="button"属性,否则它也会提交表单(https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#attr-type),这可能会与您自己的页面加载冲突。 - tevemadar
你是对的,非常感谢,现在它可以工作了。 - Poli
好的,我已将其翻译为中文作为答案返回。 - tevemadar
2个回答

6
有一个type属性,默认为submithttps://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#attr-type
虽然这不会影响“日常”按钮,但如果该按钮位于form中,则会提交表单并导致页面加载,与您的尝试冲突。 您只需给button添加type="button"属性即可避免这种情况:
<button id="rgstr_btn" type="button" class="btn btn-info" onClick="store()">Register</button>
                       ^^^^^^^^^^^^^

3

windows.open()会在新窗口中打开URL。

要替换当前窗口中的URL,请使用:

window.location.href = 'http://example.com';

2
仍然没有任何反应...看起来页面重新加载了,因为它删除了页面中的表单字段,但它并没有打开任何页面。 - Poli

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接