如何在iframe中使用父级的jquery?

我有一个文件,我们称之为parent-win.html,由域example.com提供服务。 该文件中包含jquery。 iframe,我们称之为iframe-win.html,嵌入在此页面中。 iframe-win.html有一个带有id form-elem和值Hello World!的表单元素Hello World! 。 现在我在iframe里面做了一些事情。

 var jQuery = parent.jQuery; console.log(jQuery('#form-elem').val()); 

根据我对JS的有限知识,我应该看看Hello World! 在控制台上,但我看到未定义。 现在,我的问题是我需要在iframe中再次加载jquery还是我可以利用已在父窗口中加载的jquery对象?

请注意,这不像父/ iframe那样通常访问iframe /父内容。

在iframe中尝试这个:

 if (typeof(jQuery) == "undefined") { var iframeBody = document.getElementsByTagName("body")[0]; var jQuery = function (selector) { return parent.jQuery(selector, iframeBody); }; var $ = jQuery; } 

基于Moin的答案,这是一个更好的解决方案:

 if (typeof(jQuery) == "undefined") { window.jQuery = function (selector) { return parent.jQuery(selector, document); }; jQuery = parent.$.extend(jQuery, parent.$); window.$ = jQuery; } 

所以我们可以使用$ .get,$ .extends等$的函数。

您需要在iframe加载jQuery。

编辑:好的,如果框架不在同一个域上,那么你不必重新加载jQuery。 请参阅从iframe访问jQuery库