JavaScript点击按钮加载页面

72

我想要完成一个非常简单的任务,即在页面上点击一个按钮,然后跳转到另一个页面。我已经尝试使用window.location.href以及其他一些方法,但都没有起作用。我还尝试了不同的平台和浏览器,但结果都相同。

我知道它可以调用函数,但我无法让新页面加载。此外,这些页面都是在我的本地文件系统中,并且两个页面处于同一级别(但我还尝试加载像www.apple.com这样的外部页面)。

你有什么想法吗?

谢谢 Patrick


1
你需要比“许多其他东西”更具体。发布您的代码(HTML和JavaScript)并告诉我们您遇到了什么错误。 - Matthew Flaschen
不是一个好主意:用户会将按钮视为触发动作(提交、保存/加载)的元素。而链接(a href)则用于导航。不要混淆使用,否则会让用户感到困惑。 - Caspar Kleijne
4个回答

101

简单的代码将页面重定向

<!-- html button designing and calling the event in javascript -->
<input id="btntest" type="button" value="Check" 
       onclick="window.location.href = 'http://www.google.com'" />

1
这个可以工作,但我认为我的问题是我使用了 type="submit" 而不是 type="button"。感谢您的帮助! - Patrick
1
window.location.assign() 在火狐浏览器中对我效果更好。由于某些原因,赋值操作符 = 影响了浏览历史记录。 - akostadinov

24

不要滥用表单元素,当使用 <a> 元素就足够了。

<style>
    /* or put this in your stylesheet */

    .button {
        display: inline-block;
        padding: 3px 5px;
        border: 1px solid #000;
        background: #eee;
    }

</style>

<!-- instead of abusing a button or input element -->
<a href="url" class="button">text</a>

1
我也在考虑这样做。谢谢你的帮助。无论如何,我更喜欢这些按钮。再次感谢。 - Patrick
我尝试了这个按钮,但它看起来不好。它只是一个带有黑线的链接。 - RedDragonWebDesign

20

只需使用 window.location = "http://wherever.you.wanna.go.com/",或者对于本地链接,使用 window.location = "my_relative_link.html"

您也可以尝试在地址栏中输入这些,例如 javascript: window.location = "http://www.google.com/"

另外请注意,绝对链接的协议部分 (http://) 不可省略; 省略它会使javascript认为它是一个相对链接。


谢谢你的建议,我之前不知道可以在浏览器中运行JavaScript,每天都会学到新东西。我尝试使用window.location和其他类似的代码,但无法使其正常工作,而且我知道它应该可以。后来发现问题出在我的“类型”设置错误,与JavaScript无关,而是与HTML有关。再次感谢你的建议。 - Patrick

5

这里提供的答案适用于在同一浏览器窗口/选项卡中打开页面。

然而,我想要当用户点击按钮时,页面在新窗口/选项卡中打开。 (窗口/选项卡的决定取决于用户的浏览器设置)

因此,以下是如何将页面在新选项卡/窗口中打开的方法:

<button type="button" onclick="window.open('http://www.example.com/', '_blank');">View Example Page</button>

不一定要使用按钮,您可以在任何地方使用。 请注意使用_blank以在新标签页/窗口中打开。


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