$未在iFrame中定义
我有一个包含iframe的页面。 我的iframe页面是iframe.php而我的主页面是main.php,当我直接加载iframe.php我的jquery代码执行正常,但是当我加载main.php(其中包含iframe.php作为iframe)时,我收到错误“ $未定义“。
这可能是因为main.php和iframe.php都使用了
如果是这样,如何在iframe页面中使用jquery而不包括此行?
我想到了。 在我使用的iFrame中
var $ = parent.$;
以及任何jquery调用文档的上下文。 即
$("#element", document).doStuff();
这很奇怪,因为我拥有它的原始方式(两个页面都包含jquery)在Safari for Mac中运行良好但在Firefox中它给了我错误
错误:c.defaultView.getComputedStyle(h,null)为null源文件: http ://code.jquery.com/jquery-latest.pack.js行:16
我在网页上加载iframe,我可以找到$ object使用
var $ = parent.$;
但这并没有对iFrame的元素进行选择。 找到下面的代码来在iFrame主体上执行选择器
if (typeof(jQuery) == "undefined") { var iframeBody = document.getElementsByTagName("body")[0]; var jQuery = function (selector) { return parent.jQuery(selector, iframeBody); }; var $ = jQuery; }
不知何故,文档对象也undefined
。
上述代码的来源: https : //gist.github.com/843229
希望它可以帮到某人。
坏消息 – 你不能使用Jquery,除非它在文档中。 所以,无论如何你都要加载它。
在两个文档中包含jquery调用实际上没有坏处。 我有几个客户iFrame我公司的应用程序的一部分用于营销自动化(包括它)和Jquery包含在他们的父文档中,它工作得很好没有冲突。 从负载的角度来看,假设您设置正确,由于缓存,命中率可以忽略不计。 所以,包括在内。
iFrames的经验法则…将它们视为页面内的单独页面。 是的,在某些情况下,事情会延续,但文档原始模型会阻止CSS之类的内容在父级和子级之间交叉。
升级到更新的版本fe https://code.jquery.com/jquery-2.1.3.min.js
- 仅使用Internet Explorer,IFrame地图定位缺陷中的每个jquery选项卡都有一个Google地图
- 在IFRAME内部,jPlayer全屏?
- 使用textareas在iframe中显示实时结果,使用jQuery,将单独的textarea输入添加到iframes头部
- iframe中框架的jQuery / javascript上下文是什么?
- 如何检查iframe是否加载失败? jQuery的?
- 如何更改加载到iframe中的外部页面的背景颜色
- jQuery iframe滚动事件(IE)
- jQuery – 尝试从iFrame中选择元素(指向并单击)
- 使用jQuery和iFrame下载大文件 – 需要一个File Ready事件,这样我就可以隐藏加载的gif