【问题标题】:onclick event in anchor tag not working in IE锚标记中的 onclick 事件在 IE 中不起作用
【发布时间】:2018-01-18 21:10:33
【问题描述】:

以下在 Firefox 和 Chrome 中运行良好,但 IE 8 在单击锚链接时不会调用 submit() 方法。

<a href="javascript:void(0);" onclick="submit();">Sign In</a>

submit方法在同一页面定义如下:

<head>
<script type="text/javascript">

function submit()
{
// other code                                              
document.forms[0].submit();
}  

</script>
</head>

【问题讨论】:

  • 你试过 onclick="javascript:submit();" ?
  • @Umair:不需要 javascript: 前缀 onclick 或类似的事件处理程序属性。这不是href
  • 一旦它对我有用,所以我猜它是
  • @Umair:恕我直言,它一定是别的东西。在那个位置,javascript: 是一个标签(而且你没有使用),而不是一个协议。在href 中,它将是一个协议。
  • 可能是个愚蠢的问题:有表格吗? :) 还是不止一个?

标签: javascript internet-explorer onclick anchor


【解决方案1】:

你能提供更多的上下文吗?比如submit函数是在哪里以及如何定义的?有了以上内容,它应该可以工作——除了:

您可能还想在那里return false; 取消默认操作。例如:

<a href="javascript:void(0);" onclick="submit();return false;">Sign In</a>

可能是默认操作在submit 之后立即发生并干扰它。

编辑:只是为了搞笑,请尝试为您的 submit 函数使用不同的名称。 IE 有命名空间问题。例如,如果您有任何将 idname 属性设置为“提交”的内容,这可能是个问题...

【讨论】:

  • 我尝试添加“return false;”没有效果。 IE 调试器显示对 onclick 代码的调用,但不会进入 submit() 方法。
  • @Mark:我不确定我是否知道调试器显示它输入onclick 代码但未输入submit 方法的意思。是否抛出异常?如果不是,会发生什么导致它“不会”进入函数?
  • 感谢您回复 T.J.真的很奇怪。我将 IE 8 调试器设置为“全部中断”。一旦我单击“登录”链接,调试器就会中断并突出显示 onclick="submit();"在锚。我假设突出显示是指示要执行的下一条指令。为了安全起见,我还在提交方法中设置了一个断点。从这一点开始,我单击调试器菜单上的“Step Into”或“Step Over”。两者都具有高亮 void(0) 方法的相同效果。由于某种原因,IE 不会执行 submit() 函数。我没有看到任何错误迹象。
  • 你是对的 T.J.这是名称空间冲突。 IE 使用提交来做某事。一旦我更改了函数名称,它就起作用了。再次感谢您的帮助。
  • @Mark:太好了!很高兴有帮助,我应该从一开始就想到它。
【解决方案2】:

对于最近遇到此问题的其他人,对我而言,这是由于 IE 11 在网站上使用了兼容模式。它看到我在同一个域上,假设该站点是一个 Intranet 站点并自动切换到兼容模式,这破坏了一些 Javascript(并导致了一些其他意外的显示问题)。

您可以通过单击设置 cog 并选择“兼容性视图设置”来关闭此“功能”。有一个复选框被设置为“在兼容性视图中显示 Intranet 站点”。

【讨论】:

    【解决方案3】:

    尝试使用

    <a onclick="submit();">Sign In</a>
    

    <a href="javascript:submit();">Sign In</a>
    

    【讨论】:

      【解决方案4】:

      如果您需要将值输入到javascript函数中,请确保使用单引号而不是双引号。

      例如:

      <a href="#" onclick="your_function('input');">Sign In</a>
      

      【讨论】:

      • 这在 ie9 中对我不起作用。我不得不转向 jquery
      猜你喜欢
      • 1970-01-01
      • 2014-12-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-12
      • 2013-12-02
      • 1970-01-01
      • 2011-11-12
      相关资源
      最近更新 更多