·当在一个IFRAME中时,在导航内容中的链接(一个元素)将装载IFRAME中的新页面,除非你把target="_parent"添加到每一个链接之后。
·依附到导航元素的JavaScript事件处理器将在IFRAME的上下文中工作(如果还保留这个上下文的话)。如果你把导航内容移动主页面上,那么事件处理器能够存取在主页面中定义的函数和变量。
四、使用XmlHttpRequest
如果你的用户主要使用Internet Explorer的较新版本或基于Gecko的浏览器(Mozilla,Firefox,Netscape 7),那么你可以决定使用XmlHttpRequest对象来把其它内容下载到你的web页面中。第一步非常类似于前面描述的方式。对于每一个占位符,你需要一个JavaScript函数调用来启动加载过程:
以下为引用的内容:
<div id="header">
<div style="height: 100px; width: 100%"></div>
<script>loadContent("header","/navigation/header.html")</script>
</div>
然而,loadContent函数是根本不同的:它创建了一个新的XmlHttpRequest对象,然后把一个事件处理器指派给它,并且异步启动装载过程:
以下为引用的内容:
function loadContent(id,url) {
try {
var rq = new XMLHttpRequest() ;
rq.open("GET", url, true);
rq.onreadystatechange = function() { contentLoaded(rq,url,id) }
rq.send(null);
} catch (err) {
alert("cannot load "+url+" into "+id) ;
}
}
注意
每一种主流浏览器家族都以一种不同的方式实现了XmlHttpRequest对象。处理这种兼容性问题的最容易的方法是,使用一个包装器库,例如Sarissa。我们在本文中示例中就使用了这种库。
回调函数contentLoaded负责检查XmlHttpRequest对象是否已经准备好及完成状态(如果请求已完成的话),并且从响应中提取HTML标记。提取HTML代码(除非你使用XHTML,这种情况下,你可以使用XMLDOM接口)的最容易的方法是,使用字符串处理函数来查找<body>和</body>标志之间的文本:
以下为引用的内容:
function contentLoaded(rq,url,id) {
伊图教程网[www.etoow.com]
http://www.etoow.com/html/2008-01/1201325655-2.html
try {
基于Ajax技术提高搜索引擎排名
'http://www.etoow.com/html/2008-01/1201325655-2.html