最近网站做一些改动,需要引用另一个网站的页面,于是用到了jQuery框加中的load方法。挺方便的。
load(url, [data], [callback])手册上的说明很直接明了:
载入远程 HTML 文件代码并插入至 DOM 中。默认使用 GET 方式 – 传递附加参数时自动转换为 POST 方式。jQuery 1.2 中,可以指定选择符,来筛选载入的 HTML 文档,DOM 中将仅插入筛选出的 HTML 代码。语法形如 “url #some >selector”。
不过因为它传输数据时是用utf-8编码的,所以当调用页面编码不是utf-8的时候,就会出现乱码,而且url后边的筛选器只能是以id开始,如果筛选的内容没有定id的话是很让人抓狂的,希望在以后的版本里会支持更多的筛选器。
加载页面全部内容:
$("#html").load("ajax_load.html");
加载页面部分内容:
$("#html").load("ajax_load.html #left");
加载页面全部内容,以POST形式发送附加参数,并在成功加载后给出提示:
$("#html").load("ajax_load.html", {"sort":"desc"}, function(){
alert("ajax_load.html load success!");
});
jQuery提供一个防止ajax使用缓存的方法:
<script type="text/javascript" language="javascript">
$.ajaxSetup ({
cache: false //close AJAX cache
});
</script>
这个方法在每次load页面的时候都要执行一次 否则只会再第一次时候有效 其他load 还会读取缓存页面。
*********************************************************************************
注意:
在所指定的标签没有加载完成时,load方法并不会执行:
如:页面中<div class="main">标签是load方法刷新的内容前提是,html页面已经加载完成<div class="main">;才能刷新这个div中的内容;
使用jQuery(document).ready(function()方法可以解决,即页面内容全部加载后,再加载load的内容,如:
jQuery(document).ready(function(){
$("#main").load("ajax_load.html");
}