在一个Iframe中,有一个子Iframe,两个Iframe的JS代码中都有$(function () {})函数。
根据我的观察,子Iframe的$(function () {})函数要优先于父页面的$(function () {})执行,这是为什么呢?
另外,在父页面中怎样写代码,才能让代码优先于子Ifram的$(function () {})函数执行呢?谢谢。
1 回答
隔江千里
TA贡献1906条经验 获得超10个赞
1.你的Iframe是如何创建的?(脚本动态创建,还是直接嵌入页面)
<html> <body> <div id="divIframe"> <iframe src=""></iframe> </div> </body> </html>
上面这种方法,子Iframe加载都属于当前页面(Iframe)的一“渲染过程”,所以,你在
当前页面ready中写代码,要比子Iframe中的ready中写的代码执行要往后。
2.如果是直接嵌入,那么,子Iframe的构造还属于父Iframe document read 之前的过程。所以,子Iframe中的ready要比父Iframe要早。
3.如果是脚本动态构造,那么父Iframe应该是比子Iframe要早
例如:
<html> <body> <div id="divIframe"></div> </body> </html>
(function(doc,$){ $(document).ready(function(){ appendIframe(); }); function appendIframe(){ // 在这里把子Iframe嵌入到父Iframe中 var iframeParent= doc.getElementById('divIframe'); var iframeSub=createIframe(); iframeParent.appendChild(iframeSub); }; function createIframe(){ // 在这里设置子Iframe加载完毕后操作 // 如 iframe.onload=function(){ // code here... //}; } })(document,jQuery);
添加回答
举报
0/150
提交
取消