【问题标题】:Why won't my javascript buttons redirect like they're supposed to?为什么我的 javascript 按钮不会像他们应该的那样重定向?
【发布时间】:2011-09-25 09:43:51
【问题描述】:

很抱歉用这么少的信息问这么简单的问题,但我就是想不通!

我有一个 ASP.NET 页面,我在其中添加了几个普通的 HTML 按钮,这些按钮应该将用户带到不同的页面。这是一个例子:

<button onclick="location.href='Default.aspx';">Go Back</button>

我希望当单击此按钮时,会将浏览器重定向到 Default.aspx。相反,它似乎只是刷新当前页面,保持 URL 不变。

按钮位于页面范围的 ASP.NET

标记内。按钮不提交表单。当我在浏览器中查看页面的源代码时,我看不到任何应该拦截位置变化的东西(如 onunload 事件处理程序或类似的东西)。没有其他框架。这个页面真的没有什么特别之处。

我尝试过使用location=self.location=window.location=location.replace()。从按钮的 onclick 处理程序中执行时,它们都不起作用。我在 Firefox 5 和 Chrome 10 中尝试过。当从浏览器的地址栏中执行时,javascript 确实 工作,如下所示:javascript: location.href='Default.aspx'; void(0);

我使用 Firebug 的 javascript 调试器尝试跟踪单击按钮时发生的情况,但没有发现任何异常情况。我没有看到任何事件拦截代码或其他问题。错误控制台中没有记录错误。

在我看来,我像以前一样使用过脚本,而且它总是工作得很好。为什么现在不工作了?一些我不知道的由 ASP.NET 创建的代码? onclick&lt;button&gt; 中不起作用吗?这是 Chrome 和 Firefox 共有的一些 JS 安全异常吗?

请帮忙,这快把我逼疯了!!谢谢。

【问题讨论】:

标签: javascript asp.net html button redirect


【解决方案1】:

你需要使用 document.location.href="your url";

【讨论】:

  • 从技术上讲,它应该是 window.location.href,而不是文档。
【解决方案2】:

只需像这样添加return false;

&lt;button onclick="location.href='Default.aspx';return false;"&gt;Go Back&lt;/button&gt;

停止按钮向自身提交表单。

【讨论】:

  • 是的,做到了!我知道它必须是 something 那样的,但 Google 在尝试查找时失败了。非常感谢!
  • 哇,非常感谢,这解决了我遇到的一个完全不相关的问题!
  • 5 年后,祝福你的灵魂@Alohci
【解决方案3】:

尝试将return false 添加到 onclick javascript?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-04
    • 1970-01-01
    • 2018-08-28
    • 1970-01-01
    • 2012-06-04
    • 1970-01-01
    • 1970-01-01
    • 2020-03-24
    相关资源
    最近更新 更多