用jquery的load方法载入某个页面,如何使该页面上的$(document).ready在callback之前执行。
代码如下:
1.html<script language="javascript" src="jquery-1.5.2.min.js"></script>
<script language="javascript">
function callback() { alert('load success!'); }
function loadcontent() {
$('#content').load('2.html', callback);
}
</script>
<input type="button" value="显示结果" onclick="loadcontent()" /><br>
<div id="content" style="width:300px; height:200px; border: 1px solid #999"></div>
2.html<p>页面已经成功加载。</p>
<script language="javascript" src="jquery-1.5.2.min.js"></script>
<script language="javascript">
window.onload = function(){ alert('window loaded!'); }
$(document).ready(function(){
alert('document ready!');
});
</script>
如上,如何使alert('document ready!')先于alert('load success!')执行,另外,如何才能使window.onload执行?

解决方案 »

  1.   

    ready 执行完了就执行了啊。。
      

  2.   

    只能用延迟,load跟你载入的页面中的函数是不同线程中执行的(好像是可以这么说吧 - - ),所以在load中无法控制你所载入的页面
    $('#content').load('2.html', setTimeout(callback(),1000));
      

  3.   

     function loadcontent() {
            $('#content').load('HTMLPage101.htm', function () { alert('load success!'); });
        }这样就可以实现alert('document ready!')先于alert('load success!')执行
      

  4.   

    这个思路应该可以,不知道有没有办法使window.onload运行。
    因为我在2.html页面里有HTML编辑器,类似CKEditor,这里面有window.onload和window.attachEvent('onload', fn)等,如果不想去改动编辑器的JS(编辑器的JS代码有点复杂),如何使之正常运行?