我jquery-ujs与 Rails 一起使用,它允许我们在使用data-confirm="Confirm submit?".
我在特定页面上有一个非常奇怪的错误,window.confirm只要我点击提交按钮,它就会非常快地闪烁,就像附加了多个事件处理程序一样。
这是 HTML 代码:
<button name="button" type="submit" data-confirm="Do you confirm?" data-disable-with="Wait..." class="btn btn-primary">
Submit
</button>
这就是单击按钮时发生的情况(注意 window.confirm 出现一秒钟,然后立即解除):
错误:
在我的开发环境中不会发生;
在 Firefox 中不会发生
在具有相同表单的其他页面中不会发生,使用 data-remote="true" 提交,并在提交按钮上进行数据确认。
在使用 Chrome 的其他 4 种不同的 macbook 中也不会发生!
确实发生在我的生产环境中,在我的机器上,甚至在私人标签上;
这太令人费解了,因为它只发生在我的机器上,但即使在私人选项卡上,也不能是扩展程序,但我根本无法在任何其他机器、浏览器甚至我自己的机器上重现此错误开发环境
这太奇怪了,即使以 开始 rails RAILS_ENV=production
,这样我就可以像在生产中一样获得所有资产,错误也不会发生。
使用 Chrome devtools(源选项卡)将调试器附加到 mouse.click 会使错误消失(只要我单击按钮,调试器就会触发,我恢复代码,并且确认窗口只出现一次)。
我不知道如何调试这种奇怪的行为。可以放手,但我担心它稍后会回来咬我,所以我需要了解为什么我的机器上会发生这种情况。
jquery-ujs lib ( https://github.com/rails/jquery-ujs/issues/384 ) 中存在一个旧错误,但它在几年前已修复,我使用的是最新版本的 lib ( https: //github.com/rails/jquery-ujs/commit/9e805c90c8cfc57b39967052e1e9013ccb318cf8),它甚至有一个安全机制,如果它被包含不止一次就会出错,并且控制台中没有错误(我确定只包含lib一次)。
不使用涡轮链接。
繁华开满天机
至尊宝的传说
相关分类