【问题标题】:onclick event not working in Internet Exploreronclick 事件在 Internet Explorer 中不起作用
【发布时间】:2011-08-02 14:56:59
【问题描述】:

我正在使用 asp.net 将客户端 onclick 事件添加到 ListView 中的 span 标签:

<span id="mySpan" onclick="<%# Request.Cookies["myCookie"] != null ? "MyFunction1(" + Eval("MyVal1") + ");" : "MyFunction2(" + Eval("MyVal2") + ");" %>"

我所做的每一个方面总是在 Chrome 和 FF 中 100% 完美运行。在 IE(v8 和 v9)中,它总是添加正确的 javascript 函数,并且所有代码看起来都很完美——在 IE 中呈现的 span 代码看起来与它在 Chrome 和 FF 中的外观相同。但是,当使用 Fiddler 监控流量时,几个随机的 IE 跨度根本不会触发 javascript 函数。有些人会。可以工作的代码和不工作的代码之间没有区别。在 IE 中不起作用的那些在 Chrome 和 FF 中可以正常工作。我还能够确认没有使用 Fiddler 以外的方式触发 javascript 函数,因此 Fiddler 没有给我错误的读数。

我在我的 asp 代码中是否正在做一些事情来添加可能在 IE 中搞砸的功能?

【问题讨论】:

  • 听起来问题出在客户端。你能提供一个生成的 HTML 标签的例子吗?或者更好的是,一个能反映您所描述行为的工作 jsfiddle?
  • 这里是一个不工作的渲染代码示例:Text(我尝试添加尾随 ; 和返回函数,两者都没有工作,正如我所料)。有效的代码看起来完全一样。 Fiddler 响应在工作时看起来应该是正常的,但是当它不起作用时,Fiddler 中根本没有注册任何操作。该事件根本不会被触发。
  • 如果把onclick改成alert('hi');,会不会有同样的行为?
  • alert('hi');工作正常。这一定是动态生成的问题......只是不确定是什么。或者为什么它如此随机。

标签: javascript asp.net onclick


【解决方案1】:

我猜这是您正在运行的 javascript 函数的问题。尝试在Function1 的执行过程中将alert 消息放在不同的点,以找出它在哪里中断。您的 javascript 代码可能与跨浏览器不兼容,但只针对某些元素。

【讨论】:

  • 我忘了提到 javascript 函数正在调用通用处理程序,这是我在提琴手中监控的。这使我的描述具有误导性,我深表歉意。问题是,在我的真实代码中,我将 2 个参数传递给函数,并且我没有函数的第二个重载来处理第二个参数,并且它默默地出错。仍然非常非常奇怪,它在 IE 中似乎仍有 50% 的时间有效。似乎应该是全部或全部。
【解决方案2】:

它可能不喜欢那里的哈希# 并且正在注释掉JS 代码。

尝试将其放在脚本标签中:

<span id="mySpan">

<script type="text/javascript">
    document.getElementById("mySpan").addEventListener("click",function(){
    <% if(Request.Cookies["myCookie"] != null)
       {
    %>
           MyFunction1(MyVal1);
    <%
       }
       else
       {
    %>
           MyFunction2(MyVal2);
    <%
       }
    %>
    }
</script>

如果我的 ASP 语法关闭,我深表歉意。我已经很多年没有编码了,但希望你能明白。任何 ASP 编码人员请随时为我修复此代码;)

【讨论】:

  • # 实际上是必需的,没有渲染。
  • 没有。我希望他们停止制作 IE。我不能再认真了。
  • # 是服务器标签的一部分,在服务器端进行评估。它根本不应该在客户端可见。具体来说,&lt;%# %&gt; 代表binding expressions
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-12-02
  • 1970-01-01
  • 2017-12-05
  • 2013-09-30
  • 2023-03-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多