浏览器嗅探错误/错误行为的替代方案(不缺少function)
好的,我们都知道浏览器嗅探很糟糕 。 我不打算在这里重新讨论整个辩论,无论如何,SO也不是正确的论坛。 我正在寻找一个问题的解决方案,提出的function检测替代方案似乎没有解决。
在我的特定情况下,它由以下代码触发:
$('#mysubmit').click(function() { sendAjaxRequestInsteadOfRealForm($('#input1').val(), $('#input2').val()); return false; });
现在,我知道这里真正的答案是“不要使用input type="submit"
与jQuery绑定”(除了submit
,我想)。 但是这个代码在我们所有“官方”支持的浏览器上都按预期运行,只有当我们有一个用户碰巧在IE 7中尝试该网站时,这才成为一个问题(即,它绕过了绑定并提交了表单)老式的方式)。
我们不在IE 7上进行测试。因此,我们尝试在首页上使用浏览器检测,并警告用户代理表明其浏览器不受支持的用户。 我不喜欢这样做,但我不清楚替代方案是什么。 我想不出一个能够检测到“允许在提交按钮上单击绑定来替换实际提交”的function检测策略。 这里最好的方法是什么?
编辑澄清:我不是要求上述代码的替代品。 我知道它们是什么。 我问我应该如何检测上面的代码是有问题的,以便它不会达到生产,而不必在IE 7中实际测试它。
劫持默认按钮事件?
$('#mysubmit').click(function() { event.preventDefault(); // don't let the click event happen sendAjaxRequestInsteadOfRealForm($('#input1').val(), $('#input2').val()); return false; });