0

嗨,我有一个表单,我使用 jquery 为提交按钮提供了一个值,它工作正常。

jQuery('#frm_f_container.with_frm_style .submit input[type="submit"]').val('');

现在表单代码放在 wp super pop up pro 里面。它是一个弹出插件,当我使用 firebug 检查时它包含 iframe

相同的 jquery 不起作用,所以我contents()按照 iframe 的建议进行了尝试,但这也没有设置按钮值,这是我尝试过的代码

jQuery('.sppro_cboxIframe').contents().find('#frm_f_container.with_frm_style .submit input[type="submit"]').val('');

.sppro_cboxIframe是像这样放置 iframe 的类

<iframe class="sppro_cboxIframe" frameborder="0" name="sppro_cbox1381566909072" src='url'>

当我查看源代码时,我无法像上面那样看到 iframe。

现在如何更改或向其中的表单添加值。任何帮助将不胜感激。

4

3 回答 3

0

假设jQuery定义在$内部<iframe>,传递相同的 origin,并且内部的页面<iframe>已经开始加载,您可以通过它的属性获取HTMLIFrameElement的Window引用。contentWindow

// get the <iframe> and then it's contentWindow
var iWin = document.getElementsByClassName('sppro_cboxIframe')[0].contentWindow;
// now to use jQuery inside <iframe>
iWin.$.find('#frm_f_container.with_frm_style .submit input[type="submit"]').val('');
于 2013-10-12T10:54:59.663 回答
0

您将无法使用 javascript 从 iframe 外部操作 iframe 内部的元素。请参阅有关同源政策的答案:

jQuery/JavaScript:访问 iframe 的内容

检查该插件是否允许您将 jQuery 传递到 iframe。这是您在 iframe 中操作元素的唯一方法。

于 2013-10-12T09:01:16.433 回答
0

你的代码很好,这里是演示:http: //jsfiddle.net/T86yw/

jQuery('.sppro_cboxIframe').contents().find('#frm_f_container.with_frm_style .submit input[type="submit"]').val('New Value');

问题出在其他地方。正如您所说的两个页面具有相同的来源,要检查的另一件事是运行代码时是否已经加载了 iframe。

于 2013-10-12T17:21:01.633 回答