【问题标题】:Href and onclick issue in anchor link锚链接中的 Href 和 onclick 问题
【发布时间】:2009-06-08 11:54:06
【问题描述】:

我有指定了 href 和 onclick 事件的锚链接。 onclick 将 location.href 设置为服务器 url,将 href 设置为其他链接。 单击链接时,始终调用 href 事件,但仅调用一次 onclick 事件(仅针对一个锚链接)。如果我调试 javascript 它可以正常调用 href 和 onclick。可能是什么问题?

【问题讨论】:

  • 我认为您需要更多信息。为什么要尝试使用一个锚标记发送两个请求?你是什​​么意思“只被调用一次” - 只针对一个锚标签,不是全部或仅第一次,但不是在页面被替换后?
  • 完全不清楚你的目标是什么。当您说 onclick 设置一个位置而 href - 另一个位置时,您实际上希望用户去哪个位置?您意识到他不能在一页上同时访问两个位置。通过检查 cmets 的某些答案,我感觉您想将用户带到 1 个位置,然后重定向到另一个位置。如果是,则应从服务器端发出重定向。 IE。如果你有 href="/target.html" 和 onclick="window.location='/action.call'" 你必须把 "/action.call" 放到 href,并在服务器端发送 HTTP 状态 302 重定向。另外,查找“发布后重定向”!

标签: javascript javascript-events


【解决方案1】:

试试

 <a href="whatever.html" onclick='window.location.href="http://whereverelse";return false;'>linky</a>

只是为了解释一下:在这种情况下返回 false 会阻止默认操作。

你为什么要这样做?

【讨论】:

  • 我猜返回 false 将停止 href 功能。但我希望两者都能工作。Onclick 是否像更新数据库一样在服务器端工作,之后我想将用户重定向到 href 中指定的正确链接。但是如问题中所述,这只发生一次。我尝试从服务器端本身重定向用户,但如果 url 以不同的协议开头,如 mms://、notes:// 等,则会失败。
  • location.href 用于更改当前页面。听起来您想发出 AJAX 请求
  • 哦,像我一样懒惰...... Deuuuude 你认为你可以避免 AJAX 多久......请给予......我曾经尝试过同样的事情,现在我有......相信我有和平屈服...大声笑
【解决方案2】:

听起来您希望链接调用运行服务器端代码(如 PHP)的页面,然后将浏览器定向到另一个位置。这通常通过让服务器端脚本使用第二个 URL 发送重定向响应来完成。

【讨论】:

    【解决方案3】:

    对于那些说“为什么?”的人,我有一个理由。中间点击。也许您有 AJAX 可以从服务器获取详细信息,然后在同一页面中准备它们,但如果中间点击者想在新页面中查看该数据,它们会被阻止。

    因此,报告将为需要此类功能的用户提供相同的功能。

    作为一个习惯性的中间点击者,我讨厌带有激情的标签。但我发现 GreaseMonkey 有时可以将 javascript href 重新分配给 onclick,并尝试解析 href 的有效 URL。我真的希望在新选项卡中打开 Javascript 只会克隆页面然后运行代码。

    【讨论】:

      猜你喜欢
      • 2010-11-23
      • 1970-01-01
      • 2015-09-23
      • 2014-03-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-06
      相关资源
      最近更新 更多