[jquery]在 IE 上访问 VML 元素的“type”属性失败。

2023-12-05 673 views

回答

8

我很好奇——如果你这样做的话,它会起作用吗"type" in elem?如果不是,您能否将您的承诺更改为:jQuery.nodeName( elem, "input" )而不是 toLowerCase 业务?谢谢!

9

另外 - 是否已经针对此问题提交了错误?如果没有的话可以归档一份吗?谢谢!

5

"type" in elem返回true:(

我不知道jQuery.nodeName( elem, "input" ),会切换到那个。我会提交一个错误。

3

抱歉,我之前应该问过这个问题 - 但你也可以添加一个测试用例吗?想要确保这种情况以后不会回归。

5

添加一个的最佳位置在哪里?是否有针对每个浏览器的解决方法的特定套件?

7

我相信理想情况下您应该在 test/unit/event.js 中放置一个测试用例并修改 test/index.html 以使其包含必要的 VML 定义。看一下测试套件中使用 try/catch 报告错误的其他测试用例;我想你很快就能弄清楚。:)

1

我想这个问题会影响 jQuery 中使用的许多其他地方elem.type。我们正在开发的一个网站上到处都出现错误。例如在 Sizzle.filters 中。

5

只是想补充一下,这个问题也存在于 IE9 beta 中。

3

有趣的。在我的测试中,它似乎在最新的 IE 预览版中得到了修复,正如 Microsoft 在我的上游错误报告中的响应所示。

这是他们的回应:

“我们目前无法按照描述重现此问题。我们最近发布了较新的版本。请使用 2010 年 8 月 4 日发布的 IE 平台预览版本的最新更新进行测试。

为了重现,我们将文档模式更改为 IE 9,并在弹出窗口中显示“未定义”消息。”

如果您是正确的,最好以一种或另一种方式确认这一点并重新打开上游问题。您有可以分享的测试用例吗?

7

这是我在脚本选项卡中得到的内容:http://i.imgur.com/ZzESu.png 如果我手动选择 IE9 标准模式而不是默认文档模式,则不会显示任何错误。这是预期的行为吗?

6

重要的是它不会说“失败”并最终落在地板上的水坑中,这是 IE8 及更早版本中发生的情况,也是我们需要在 jQuery 中解决的行为。(顺便说一句,如果在 IE8 模式下运行,它也会在 IE9 中发生。)

http://jsbin.com/ogobu4/2/是标准模式下的相同测试用例,而http://jsbin.com/ogobu4/3/是一个修改,允许您使用 IE7/8 标准模式进行测试IE9。由于某种原因,原始测试用例中的一些选择器在非 IE9 模式下失败,但这似乎是一个单独的错误/问题。

9

我不确定这是否修复了该错误。这是一个简单的简化测试用例:

http://www.peakdemocracy.com/p/demo/error/statements1.html

点击多边形(三角形),在IE7/8中你会看到错误。当您删除 jquery-ujs 或删除

disableDefaultUI: true,

在谷歌地图的选项中。