我从我们当前的项目中发现了一个非常奇怪的 bug:
index.html(演示)和 iframe.html
做如下操作:
1)点击第一个输入框并选择任何日期。
您将看到 - "datepicker changed inside iframe!"
2)点击第二个输入框,输入一些符号,并在页面上的任何空白处按下。
您将看到 - "usual_input changed inside iframe!" + "usual_input changed outside iframe!"
在 iframe 内部:
<input id="datepicker" /> <input id="usual_input" />
绑定在index.html文件中的这些输入框上,以响应change事件:
$(this).contents().find("#datepicker").change(... (1)
$(this).contents().find("#usual_input").change(... (2)
绑定在iframe.html文件中的这些输入框上的change事件:
$("#datepicker").change(... (3)
$("#usual_input").change(... (4)
但是编号1在任何浏览器中都无法工作!
JQuery UI的日期选择器可以完全正确地触发更改事件。为什么我们不能在iframe之外绑定它呢?
$(this)[0].contentWindow.$("#datepicker")
,试一下,因为它返回的结果与.find()
返回的结果不相等... - JCOC611