0

我正在将 swfupload 与 jqueryui datepicker 一起使用:

  1. 打开日期选择器
  2. 关闭或离开日期选择器
  3. 单击上传按钮(它是 swf 并且在 html 中显示为<object>标记。

该问题仅发生在 IE9 中,这是一个 jquery ui 异常
-> 此日期选择器缺少实例数据。

当我调试它时,问题就出现在这一点上。
-> return $.data(a,PROP_NAME)
a 是对象元素,PROP_NAME 只是一个字符串 'datepicker'

当我将其键入 IE7、8 和 chrome 时,它​​们会返回未定义的原因,因为没有名为“datepicker”的数据绑定到该对象。但 IE9 会引发异常。

我做了一些谷歌搜索,找不到任何关于此的讨论。

我正在考虑用跨度覆盖对象元素,当在该跨度中发生单击事件时,动态触发 swf 对象的单击事件..但要做到这一点,我认为我需要一些外部的东西......所以我把它排除在外。。

任何人都知道如何弄清楚,或一些建议?

4

1 回答 1

2

我也遇到了完全相同的问题:它发生在使用 jquery-ui datepicker 和uploadify 时(它使用 flash,因此使用对象标签)。仅限 IE 9。

正如您已经确定的那样,问题出在 jquery-ui 上。我发现解决此问题的唯一方法是通过删除以下异常代码来修改缩小的 jquery-ui 代码:

throw"缺少此日期选择器的实例数据"

这可以防止 jquery-ui 抛出异常,这意味着 uploadify 可以继续并且不会受到影响。

明显的缺点是:

  1. 这是对框架脚本的修改,因此如果将来将新版本或更新版本的 jquery-ui 添加到您的应用程序中,它可能会被无意覆盖(异常代码可能会被重新定位);和

  2. 不再处理异常,即代码不会再抛出错误“缺少此日期选择器的实例数据”,即使它是有效的并且应该“知道”。因此,如果 datepicker 由于其他原因无法正常工作,可能会导致调试问题。

于 2013-01-21T13:39:27.973 回答