Javascript 如何在iframe中编辑表单

Javascript 如何在iframe中编辑表单,javascript,jquery,html,iframe,Javascript,Jquery,Html,Iframe,嗨,我有一个表单,我用jquery给提交按钮赋值,它工作得很好 jQuery('#frm_f_container.with_frm_style .submit input[type="submit"]').val(''); 现在,表单代码被放置在wp super弹出式pro中。这是一个弹出式插件,当我用firebug检查时,它包含iframe 同一个jquery不起作用,所以我尝试了iframe建议的contents() jQuery('.sppro_cboxIframe').contents

嗨,我有一个表单,我用jquery给提交按钮赋值,它工作得很好

jQuery('#frm_f_container.with_frm_style .submit input[type="submit"]').val('');
现在,表单代码被放置在wp super弹出式pro中。这是一个弹出式插件,当我用firebug检查时,它包含iframe

同一个jquery不起作用,所以我尝试了iframe建议的
contents()

jQuery('.sppro_cboxIframe').contents().find('#frm_f_container.with_frm_style .submit input[type="submit"]').val('');
这里的
.sppro\u cboxIframe
是与iframe一起放置的类,如下所示

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

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


现在了解如何更改或向其中的窗体添加值。任何帮助都将不胜感激。

您将无法使用javascript从iframe外部操作iframe内部的元素。有关同一原产地政策,请参见以下答案:

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

假设jQuery在
内定义为
$
,传递,并且
内的页面已开始加载,则可以通过它的
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('');
//获取内容,然后它就是contentWindow
var iWin=document.getElementsByClassName('sppro_cboxIframe')[0].contentWindow;
//现在在内部使用jQuery
iWin.$.find(“#frm_f_container.with_frm_style.submit input[type=“submit”]”)val(“”);

您的代码很好,下面是演示:


问题在别处。正如您所说,两个页面都有相同的来源,另一件要检查的事情是,当您运行代码时,iframe是否已经加载。

?是的,两个页面都来自相同的来源(站点)。您的代码看起来不错,必须是我在插件html编辑器中尝试提供此脚本的其他内容。保存时,我看到脚本以
TypeError:document开头。GetElementsByCassName(…)[0]未定义。当我从浏览器查看源代码时,我找不到此类的iframe。这就是为什么会出现错误。我不知道。感谢@Paul SThanks在我查看源代码ctrl+u时提供的帮助,我无法看到此iframe代码。这是导致问题的原因吗@Christophen你是在说我的演示还是你的页面?我是在说我的页面父页面的源代码不会显示iframe代码。要查看它,您必须查看iframe本身的源代码。
jQuery('.sppro_cboxIframe').contents().find('#frm_f_container.with_frm_style .submit input[type="submit"]').val('New Value');