将事件绑定到iframe的内容并从iframe触发它

puc*_*chu 3 html iframe jquery events dom

我从当前的项目中找出了一个非常奇怪的错误:

index.html(demo)和iframe.html

做:

1)单击第一个输入并选择任何日期

你会看到 - "iframe中的datepicker发生了变化!"

2)单击第二个输入,写入一些符号并按下页面上的任何可用空间

你会看到 - "iframe里面的"normal_input已经改变了!" +"normal_input在iframe之外改变了!"

内部iframe:

<input id="datepicker" /> <input id="usual_input" />
Run Code Online (Sandbox Code Playgroud)

在index.html绑定到此输入的change事件:

$(this).contents().find("#datepicker").change(... (1)
$(this).contents().find("#usual_input").change(... (2)
Run Code Online (Sandbox Code Playgroud)

在iframe.html上绑定到此输入的更改事件:

$("#datepicker").change(... (3)
$("#usual_input").change(... (4)
Run Code Online (Sandbox Code Playgroud)

但是№1不能在任何浏览器中使用!

jquery ui的datepicker 触发器更改事件100%正确.为什么我们不能 iframe 之外绑定它?

JCO*_*611 7

您可以通过以下方式访问iframe的window元素:

$(this)[0].contentWindow.$("#datepicker")
Run Code Online (Sandbox Code Playgroud)

或者这可能也有效:

this.contentWindow.$("#datepicker");
Run Code Online (Sandbox Code Playgroud)

我希望有所帮助.