【发布时间】:2011-05-31 08:56:02
【问题描述】:
是否可以在父 iframe 页面和 iframe 内部加载和使用 jquery 而无需加载 jquery 两次, 意思是在页面中只加载一次 jquery 并在 ifrmae 中使用它。
【问题讨论】:
标签: javascript jquery unobtrusive-javascript
是否可以在父 iframe 页面和 iframe 内部加载和使用 jquery 而无需加载 jquery 两次, 意思是在页面中只加载一次 jquery 并在 ifrmae 中使用它。
【问题讨论】:
标签: javascript jquery unobtrusive-javascript
当然,只要确保 <iframe> 没有加载 jQuery 脚本,即 <script src="....">,那么您可以像这样访问父级中的 jQuery 实例:
var $ = window.top.$;
确保使用第二个参数使用正确的上下文:
$('img', document);
如果无法做到这一点,您就不能“阻止”脚本被下载和执行。
【讨论】:
你可以给子框架一个来自父框架的jQuery对象的引用,但是你必须非常小心地使用它,因为在很多地方,jQuery使用了document对象加载它的上下文,(当然)是父级的document。在某些地方你可以覆盖它(例如,当通过$() 搜索元素时,你可以提供一个搜索上下文作为第二个参数),但这可能比它的价值更麻烦。
但是重新加载 jQuery 应该不是问题。它应该来自缓存。当然,可能会有一个带有“未修改”响应的额外 HTTP GET,尽管在提供 jQuery 文件时使用适当的缓存标头,您甚至可以避免这种情况。 (我没有检查托管它的各种 CDN 的缓存头。)
【讨论】: