2013-10-12 38 views
0

您好我有一个表单,我用jQuery给一个值提交按钮,它工作正常。如何在iframe中编辑表格

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

现在窗体代码被放置在wp super pop up pro内。这是一个弹出插件包含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像上面的类。

现在如何更改或增加表单中的值。任何帮助将感恩。

+0

[同源](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Same_origin_policy_for_JavaScript)? –

+0

是都来自同一个来源(网站) – rram

+0

您的代码看起来不错,必须是别的 – Christophe

回答

0

您将无法使用javascript从iframe外部操作iframe中的元素。看到这个答案对于同源策略:看

jQuery/JavaScript: accessing contents of an iframe

检查该插件可以让你在你的jQuery传递到iframe中。这是您操作iframe中的元素的唯一方法。

+0

谢谢我试图给这个脚本在插件html editor.when我保存我看到脚本开始与'<![CDATA ['' – rram

+0

这两种形式和我尝试的脚本都来自同一个网站。 – rram

0

假设的jQuery定义为$的内,路过same origin,那里面在页面开始加载,你可以得到一个HTMLIFrameElement窗口参考通过它的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(''); 
+0

'TypeError:document.getElementsByClassName(...)[0]是未定义的。当我从浏览器中查看源代码时,我无法找到带有此类的iframe。这就是错误来临的原因。我不知道。感谢帮助@Paul S – rram

0

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

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

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

+0

感谢当我查看源代码ctrl + ui can无法看到这个iframe代码。是否导致问题? @Christophe – rram

+0

你是在谈论我的演示,还是你的网页? – Christophe

+0

我正在讨论我的页面 – rram