使用jQuery在父级和子级iFrame窗口之间进行通信

时间:2013-10-17 09:06:43

标签: javascript jquery iframe

我有一个包含iFrame的页面,在iFrame中是一个表格,我希望将点击事件附加到。

通常情况下这很容易,但我需要从父窗口中检索iFrame中的选定表格行,这会让我陷入循环。

基本思想是当用户点击一个表行时,会使用类似的东西将一个类添加到行中(伪代码,有一些功能可以删除该类的任何现有实例,因此它是唯一的): / p>

$('#table tr').on('click', function() {
   .addClass('.selectedRow');
});

然后在父窗口中,我想我可以做这样的事情:

$('#desktopIframe').contents().find('.selectedRow');

但是我不知道该附加什么,以便只要有一个带有'selectedRow'类的表行,我就可以识别它并用它做其他一些事情。通常我会使用.on('click'),但我该如何附加?

2 个答案:

答案 0 :(得分:0)

你会想要这样的东西

$('#desktopIframe').contents().find('#table tr').on("click", function() {
   $(this).addClass(".selectedRow");
});

(请注意,这是未经测试的)

答案 1 :(得分:0)

我找到了解决问题的方法,这实际上涉及扭转我想要的逻辑。我没有让父窗口读取子窗口,而是让子窗口将数据传递给父窗口。

所以在iFrame中我使用了常规的.on('click')事件,然后只是使用这段代码将一些数据从选定的行传递到父窗口中的一个字段,然后我可以操作它:

parent.document.getElementById('hiddenField')。value = $(this).blah();