访问 VML 元素上的某些属性会产生错误“失败”,并且没有其他诊断信息。出现此错误后,浏览器的状态将永久受到影响,直到浏览器重新启动;许多常见属性都会产生相同的“失败”错误。
测试用例:http://gist.github.com/582889 上游错误报告:https://connect.microsoft.com/IE/feedback/details/581183/
访问 VML 元素上的某些属性会产生错误“失败”,并且没有其他诊断信息。出现此错误后,浏览器的状态将永久受到影响,直到浏览器重新启动;许多常见属性都会产生相同的“失败”错误。
测试用例:http://gist.github.com/582889 上游错误报告:https://connect.microsoft.com/IE/feedback/details/581183/
我很好奇——如果你这样做的话,它会起作用吗"type" in elem
?如果不是,您能否将您的承诺更改为:jQuery.nodeName( elem, "input" )
而不是 toLowerCase 业务?谢谢!
另外 - 是否已经针对此问题提交了错误?如果没有的话可以归档一份吗?谢谢!
"type" in elem
返回true
:(
我不知道jQuery.nodeName( elem, "input" )
,会切换到那个。我会提交一个错误。
http://github.com/bigfix/jquery/commit/19cf1b073b75f805b961d28ebdd0242c87ef9477(经验教训,始终使用主题分支进行拉取请求,以便它自动更新新的提交。)
抱歉,我之前应该问过这个问题 - 但你也可以添加一个测试用例吗?想要确保这种情况以后不会回归。
添加一个的最佳位置在哪里?是否有针对每个浏览器的解决方法的特定套件?
我相信理想情况下您应该在 test/unit/event.js 中放置一个测试用例并修改 test/index.html 以使其包含必要的 VML 定义。看一下测试套件中使用 try/catch 报告错误的其他测试用例;我想你很快就能弄清楚。:)
我想这个问题会影响 jQuery 中使用的许多其他地方elem.type
。我们正在开发的一个网站上到处都出现错误。例如在 Sizzle.filters 中。
只是想补充一下,这个问题也存在于 IE9 beta 中。
有趣的。在我的测试中,它似乎在最新的 IE 预览版中得到了修复,正如 Microsoft 在我的上游错误报告中的响应所示。
这是他们的回应:
“我们目前无法按照描述重现此问题。我们最近发布了较新的版本。请使用 2010 年 8 月 4 日发布的 IE 平台预览版本的最新更新进行测试。
为了重现,我们将文档模式更改为 IE 9,并在弹出窗口中显示“未定义”消息。”
如果您是正确的,最好以一种或另一种方式确认这一点并重新打开上游问题。您有可以分享的测试用例吗?
您能用这个测试用例进行测试并确认它已修复吗?https://gist.github.com/2b7abeffc4573accc994
您提供的测试用例不会在 IE9 beta1 中产生任何错误。http://jsbin.com/ogobu4/
这是我在脚本选项卡中得到的内容:http://i.imgur.com/ZzESu.png 如果我手动选择 IE9 标准模式而不是默认文档模式,则不会显示任何错误。这是预期的行为吗?
重要的是它不会说“失败”并最终落在地板上的水坑中,这是 IE8 及更早版本中发生的情况,也是我们需要在 jQuery 中解决的行为。(顺便说一句,如果在 IE8 模式下运行,它也会在 IE9 中发生。)
http://jsbin.com/ogobu4/2/是标准模式下的相同测试用例,而http://jsbin.com/ogobu4/3/是一个修改,允许您使用 IE7/8 标准模式进行测试IE9。由于某种原因,原始测试用例中的一些选择器在非 IE9 模式下失败,但这似乎是一个单独的错误/问题。
好的,http://github.com/bigfix/jquery/tree/vml现在在测试 HTML 中有一个触发 VML 元素。
为了让测试再次通过,还需要修复 sizzle 问题: http: //github.com/bigfix/sizzle/tree/vml。那是http://github.com/jeresig/sizzle/pull/32。
我不确定这是否修复了该错误。这是一个简单的简化测试用例:
http://www.peakdemocracy.com/p/demo/error/statements1.html
点击多边形(三角形),在IE7/8中你会看到错误。当您删除 jquery-ujs 或删除
disableDefaultUI: true,
在谷歌地图的选项中。