我刚刚得出的结论是,我目前正在处理的项目可能在功能上存在“逻辑”错误。
目前我正在使用PHP / MySQL和JQuery的服务器技术。 在页面内有一个标记链接引用
<a href="contentpage?page=xxx">next step</a>
现在,痛点似乎是同一元素上给定的jquery click事件。内容是使用php session命令通过另一个php脚本保存页面的(当前)内容( - &gt;表单元素)。 出于任何原因,IE可以在执行标准html命令之前处理Jquery的click事件,该命令使用新的page参数再次重新加载当前页面。通过使用FF,行为是不同的。我假设,FF首先执行html命令,然后执行处理click事件的javascript代码。因此,此处的结果集错误地分别为空。
我现在的问题是你是否有同样的经历以及你如何处理/解决这个问题。
我会感谢您的任何提示或进一步的反馈。也许你也有一个关于如何重新思考当前架构的解决方案。
此致 奥利弗
答案 0 :(得分:1)
实际上firefox会在超链接执行重定向操作之前提升事件并执行附加到它的命令,可能在执行命令时发生错误并且IE允许它完成其操作而firefox抛出错误和jQuery函数块处理它你不会注意到抛出异常。 使用经典的onclick事件制作一个测试按钮并测试你的函数,看看它是否在firefox中运行
答案 1 :(得分:0)
如果我理解正确,您将为该链接分配click
个事件,并保留href
并准备开火。这是非常不明智的,因为当用户点击链接时,click
事件中的任何javascript执行的时间是有限的,并且是任意的。很可能不同的浏览器以不同的方式处理它 - 无论如何,这是错误的方法。您永远无法确定您的行为是否已完全执行。
通常的做法是设置click
事件return false
,防止链接的默认操作触发,并在完成所有操作后执行轻松的location.href = this.href
。
如果您使用Ajax发送一些数据,那么将location.href
部分放入Ajax调用的success
回调中。这样,您就可以100%确定数据是否已发送。