ASP.NET绑定JS事件的input按钮在Chrome中不工作如何解决
问题根因
你的<input>按钮标签本身写法没有问题,点击失效的核心原因是按钮触发的JavaScript逻辑里用了IE浏览器专属的非标准APIwindow.navigate():
- 这个API是早期IE浏览器实现的私有方法,Chrome、Firefox、Chromium内核的Edge等所有现代浏览器都没有提供支持
- 点击按钮时浏览器执行到这行代码会直接抛出
Uncaught TypeError: window.navigate is not a function的JS错误,中断后续逻辑执行,最终表现为按钮点击后没有任何跳转反应,看起来像“无法正常工作”。
你可以按F12打开Chrome开发者工具,切换到Console面板后点击按钮,就能看到对应的报错信息确认问题。
修复方案
把非标准的window.navigate()替换为所有浏览器兼容的标准跳转API即可,根据需求二选一:
- 普通跳转(浏览器会留存当前页的历史记录,用户可以点返回按钮回到当前页),替换代码为:
window.location.href = "MenuDisplay.aspx"; - 替换式跳转(不会留存当前页历史记录,用户点返回不会回到当前页,和原
window.navigate的默认行为更接近),替换代码为:window.location.replace("MenuDisplay.aspx");
额外提示:你当前按钮的onclick属性写的是return getPSAP();,如果getPSAP()方法没有需要阻断事件的特殊逻辑,可以去掉return,直接写成onclick="getPSAP();",避免方法意外返回假值导致事件被意外阻断。
内容的提问来源于stack exchange,提问作者Saurabh
相关产品推荐
相关产品推荐

