如何创建像链接一样的HTML按钮?因此,单击该按钮可将用户重定向到页面。

我希望它是可访问的,并且在URL中使用最少的额外字符或参数。


当前回答

我知道已经提交了很多答案,但似乎没有一个能真正解决问题。以下是我对解决方案的看法:

使用OP开头的<form method=“get”>方法。这非常有效,但有时会附加一个?到URL。这个是主要问题。此解决方案在不启用JavaScript的情况下工作。回退将添加?到URL的结尾。如果启用了JavaScript,那么您可以使用jQuery/JavaScript来处理以下链接,这样吗?不会最终附加到URL。对于极少数未启用JavaScript的用户,它将无缝地回退到<form>方法。JavaScript代码使用事件委托,因此您可以在<form>或<button>存在之前附加一个事件监听器。我在这个例子中使用jQuery,因为它既快速又简单,但也可以用“香草”JavaScript实现。JavaScript代码防止发生默认操作,然后遵循<form>action属性中给出的链接。

JSBin示例(代码段不能跟随链接)

//使用“link”类侦听文档中某个元素的任何单击$(document).on('click','.link',函数(e){//阻止默认操作(例如提交表单)e.预防违约();//获取表单中指定的URLvar url=e.target.parentElement.action;window.location=url;});<!DOCTYPE html><html><head><script src=“https://code.jquery.com/jquery-1.11.1.min.js“></script><meta charset=“utf-8”><title>表单按钮作为链接</title></head><body><!-- 将“action”设置为按钮要转到的URL--><form method=“get”action=“http://stackoverflow.com/questions/2906582/how-to-create-an-html-button-that-acts-like-a-link"><!-- 将类“link”添加到事件侦听器-->的按钮<button type=“submit”class=“link”role=“link”>链接</button></form></body></html>

其他回答

使用<a>标记创建一个按钮并添加适当的CSS内容:

.邻接{背景:#bada55;填充:5px;边界半径:5px;过渡:1s;文本装饰:无;颜色:黑色;}.attatton:悬停{background:#2a2;}<a href=“https://example.com“class=”abutton“>继续</a>

如果你需要的是它看起来像一个按钮,重点放在渐变图像上,你可以这样做:

<a href="www.yourlink.com" class="btn btn-gradient"><i class="fa fa-home"> Button Text</i></a>

还可以使用按钮:

例如,在ASP.NET Core语法中:

// Some other tags
 <form method="post">
      <input asp-for="YourModelPropertyOrYourMethodInputName"
      value="@TheValue" type="hidden" />
      <button type="submit" class="link-button" formaction="/TheDestinationController/TheDestinationActionMethod">
      @(TextValue)
      </button>
  </form>
// Other tags...


<style>
       .link-button {
        background: none !important;
        border: none;
        padding: 0 !important;
        color: #20a8d8;
        cursor: pointer;
    }
</style>

在浏览器控制台中键入window.location并按Enter键。然后,您可以清楚地知道位置包含:

   hash: ""
   host: "stackoverflow.com"
   hostname: "stackoverflow.com"
   href: "https://stackoverflow.com/questions/2906582/how-to-create-an-html-button- 
   that-acts-like-a-link"
   origin: "https://stackoverflow.com"
   pathname: "/questions/2906582/how-to-create-an-html-button-that-acts-like-a-link"
   port: ""
   protocol: "https:"

您可以从这里设置任何值。

因此,对于重定向另一个页面,可以使用链接设置href值。

   window.location.href = your link

在您的案例中:

   <button onclick="window.location.href='www.google.com'">Google</button>

从HTML5开始,按钮支持formaction属性。最重要的是,不需要JavaScript或诡计。

<表单><button formaction=“http://stackoverflow.com“>转到堆栈溢出!</button></form>

注意事项

必须由<form>标记包围。<button>类型必须是“submit”(或未指定)-我无法使用“button”类型。这引出了以下问题。重写表单中的默认操作。换句话说,如果在另一个表单中执行此操作,将导致冲突。

参考:formaction

浏览器支持:<button>:button元素