我有一个文件,我们称之为父win.html,通过域example.com服务。 此文件包含在它的jQuery。 一个IFRAME,让我们把它的iframe win.html,嵌入在此页面。 iframe的win.html有ID的表单元素form-elem
和值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;
}
这是一个基于莫因的回答更好的解决方案:
if (typeof(jQuery) == "undefined") {
window.jQuery = function (selector) { return parent.jQuery(selector, document); };
jQuery = parent.$.extend(jQuery, parent.$);
window.$ = jQuery;
}
因此,我们可以用$的功能,如$不用彷徨,$ .extends等。
您需要加载jQuery的内部iframe
。
编辑:好的,如果帧是不在同一个域,那么你就不必重新加载jQuery的。 见从IFRAME访问jQuery库