【问题标题】:Javascript not working on google chrome and smartphone browsersJavascript 无法在谷歌浏览器和智能手机浏览器上运行
【发布时间】:2012-03-09 09:06:29
【问题描述】:

我正在开发一个 ASP.NET/C# Web 应用程序 我有一个复选框。我希望该复选框在选中/取消选中时模拟按钮单击

我是用javascript来做的

<input id="filtercheck" runat="server" type="checkbox" value="Filter" onclick="document.getElementById('Button1').click();"/>

Button1 是普通按钮

<asp:LinkButton ID="Button1" runat="server" OnClick="Button1_Click"/>

所以当我点击复选框时,就像我点击Button1一样。

在 Firefox 和 Internet Explorer 上一切正常。但这不适用于 Google Chrome 和智能手机浏览器

我该如何解决这个问题?

此外,还有一些其他的 javascript 和 Jquery 脚本可以在 Internet Explorer 和 firefox 上运行,但在 Google Chrome 和智能手机浏览器上却没有。

如何确保我的网站在所有浏览器上完全兼容?

非常感谢您的帮助

【问题讨论】:

  • jQuery 非常擅长跨浏览器兼容性。使用 jQuery 连接事件处理程序,您可能会得到更好的结果。

标签: javascript asp.net google-chrome cross-browser


【解决方案1】:

编辑:是的,这是第一件事。 Chrome 卡在 linkBut​​ton 上,没有按预期呈现。

我正要问。该 ID 是否与 HTML id 属性相同?一个asp“LinkBut​​ton”如何呈现为HTML?

编辑:我会把剩下的留在这里,以防它对其他遇到 asp.net 恶作剧问题的人有所帮助。

您是否验证了您的 HTML。你在做什么并不是特别疯狂。原因可能是 HTML 损坏。

另外,请尝试通过 Chrome 中的其他方式触发该功能一次。

但有一点很有帮助。将您的 JavaScript 移出页面并将其放入链接文件中。不要让任何 Microsoft 产品告诉您任何有关通过按照他们的方式来简化 js 的信息。他们做过的最好的事情是 .net MVC,它让你摆脱了困境。

编辑:等等。你在使用网络表单吗?那可能是你的问题。在这种情况下,您可能必须启动焦点,然后单击愚蠢的东西。一些 MS 工程师防止人们找到一种简单的方法来围绕他们的愚蠢行为进行菊花链式连接。不久前,我翻阅了很多可怕的 JS 来弄清楚那个。

【讨论】:

  • 你的第一个问题给了我答案。显然,在谷歌浏览器中呈现 asp“LinkBut​​ton”时出错。我将“LinkBut​​ton”更改为一个简单的“Button”并且它起作用了。谢谢。 (将此信息添加到您的答案中,我会接受它作为答案)
【解决方案2】:

您可能需要 Button1 ClientID?

document.getElementById('<%= Button1.ClientID %>').click()

【讨论】:

    【解决方案3】:

    在所有浏览器上完全兼容?简短的回答? No fancy stuff.

    稍长一点的答案就是做 w3c 规定的标准所允许的事情,并希望所有浏览器都兼容。他们永远不会是 100%。

    【讨论】:

      【解决方案4】:

      如果你可以使用 jQuery,我建议你使用trigger 方法

      编辑:正如 Koste 指出的那样,您可能还想使用 ClientID 而不是实际的 id。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-09-27
        • 2011-01-02
        • 2012-08-18
        • 2014-08-11
        • 1970-01-01
        相关资源
        最近更新 更多