千家信息网

如何编写AJAX Tab

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,本篇内容主要讲解"如何编写AJAX Tab",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"如何编写AJAX Tab"吧!代码如下:// 163 AJAX T
千家信息网最后更新 2026年11月01日如何编写AJAX Tab

本篇内容主要讲解"如何编写AJAX Tab",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"如何编写AJAX Tab"吧!

代码如下:

// 163 AJAX Tab
// update 2006.10.18
// 增加鼠标延迟感应特性。
// update 2006.10.8
// A 标签 href 属性将保持原有HTML功能。增加urn属性为AJAX Load 路径。
// update 2006.10.11
// 修正IE5.0 undefined 未定义错误,增加脚本错误屏蔽
var Browser = new Object();
Browser.isMozilla = (typeof document.implementation != 'undefined') && (typeof document.implementation.createDocument != 'undefined') && (typeof HTMLDocument!='undefined');
Browser.isIE = window.ActiveXObject ? true : false;
Browser.isFirefox = (navigator.userAgent.toLowerCase().indexOf("firefox")!=-1);
Browser.isOpera = (navigator.userAgent.toLowerCase().indexOf("opera")!=-1);
if (Browser.isFirefox) { // entend Event Mod for FireFox
extendEventObject();
}
function extendEventObject() {
Event.prototype.__defineGetter__("srcElement", function () {
var node = this.target;
while (node.nodeType != 1) node = node[xss_clean];
return node;
});

Event.prototype.__defineGetter__("fromElement", function () {
var node;
if (this.type == "mouseover")
node = this.relatedTarget;
else if (this.type == "mouseout")
node = this.target;
if (!node) return;
while (node.nodeType != 1) node = node[xss_clean];
return node;
});

Event.prototype.__defineGetter__("toElement", function () {
var node;
if (this.type == "mouseout")
node = this.relatedTarget;
else if (this.type == "mouseover")
node = this.target;
if (!node) return;
while (node.nodeType != 1) node = node[xss_clean];
return node;
});
}
function IsChild(cNode,pNode){
while(cNode!=null){
cNode=cNode[xss_clean];
if(cNode==pNode) return true;
}
return false;
}

var ajccache=new Object();
var waitInterval;
var tempref;
var MouseDelayTime=150;//鼠标感应延迟300毫秒
function getTBprefixName(str,sta){
if(str.indexOf("active")!=-1 || str.indexOf("normal")!=-1) str=str.substr(6);
else if(str.indexOf("over")!=-1) str=str.substr(4);
else str="";
return sta+str;
}
function startajaxtabs(){
for(var i=0;i{
var ulobj=document.getElementById(arguments[i]);
ulist=ulobj.getElementsByTagName("li");
for(var j=0;j{
var thelist=ulist[j];
if(thelist[xss_clean][xss_clean]!=ulobj) continue;//只有第一层li有效 fixed 2006.9.29
var ulistlink=thelist.getElementsByTagName("a")[0];
var ulistlinkurl=ulistlink.getAttribute("urn");
var ulistlinktarget=ulistlink.getAttribute("rel");
thelist.setActive=function(bactive){
if(bactive){
this.status="active";
this.className=getTBprefixName(this.className,"active");
}else{
this.status="normal";
this.className=getTBprefixName(this.className,"normal");
}
}
thelist.LoadTab=function(){
this.setActive(true);
this[xss_clean][xss_clean].activetab.setActive(false);
this[xss_clean][xss_clean].activetab=this;
var ulistlink=this.getElementsByTagName("a")[0];
loadAJAXTab(ulistlink.getAttribute("urn"),ulistlink.getAttribute("rel"));
}
thelist.onmouseover=function(aEvent){
var myEvent = window.event ? window.event : aEvent;
var fm=myEvent.fromElement;
if(IsChild(fm,this) || fm==this) return;//过滤子元素event
if(this.status=="active") return;
tempref=this;
clearTimeout(waitInterval);
waitInterval=window.setTimeout("tempref.LoadTab();",MouseDelayTime);
}

thelist.onmouseout=function(aEvent){
var myEvent = window.event ? window.event : aEvent;
var em=myEvent.toElement;
if(IsChild(em,this) || em==this) return; //过滤子元素event
if(this.status=="active") return;
clearTimeout(waitInterval);
}

if(ulistlinkurl.indexOf("#default")!=-1){
thelist.setActive(true);
ulobj.activetab=thelist;
ajccache[ulistlinkurl]=getElement(ulistlinktarget)[xss_clean];
}else{
thelist.setActive(false);
}

}
if(ulobj.activetab==null) ulobj.activetab=ulist[0];
}
}

function getXmlhttp()
{
var http_request;

if(window.XMLHttpRequest) {
http_request = new XMLHttpRequest();
if (http_request.overrideMimeType) {
http_request.overrideMimeType("text/xml");
}
}
else if (window.ActiveXObject) {
try {
http_request = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
http_request = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}
if (!http_request) {
window.alert("can't create XMLHttpRequest object.");
return null;
}
return http_request;
}

function loadAJAXTab(url,contentid){
var ocontent=getElement(contentid);
if(ajccache[url]==null) {
var xhttp=getXmlhttp();
xhttp.onreadystatechange=function(){
if(xhttp.readyState == 4 && (xhttp.status==200 || _window.location.href.indexOf("http")==-1))
{
ocontent[xss_clean]=xhttp.responseText;
ajccache[url]=ocontent[xss_clean];
}
}
xhttp.open("GET",url,true);
xhttp.send(null);
}else{
ocontent[xss_clean]=ajccache[url];
}
}
_window.onerror=function(){return true}

到此,相信大家对"如何编写AJAX Tab"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

元素 内容 属性 错误 鼠标 学习 延迟 实用 更深 有效 代码 兴趣 功能 只有 实用性 实际 操作简单 方法 更多 朋友 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网新科技 上海睿民互联网科技有限公司 朗新科技与工业互联网 互联网科技ppt模板 融势互联网科技 狮子座互联网科技培训 中国最先进互联网科技公司 蓝色互联网科技 互联网科技热点资讯 互联网经济与金融科技 互联网科技公司有风险吗 广州新华互联网科技学校电竞方面 华夏恒生科技与互联网科技 智帮互联网科技公司最近动向 广州千川互联网科技有限公司 卡尔迅互联网科技有限公司 互联网科技平台产品运营 米泉互联网科技专业怎么样 保山浩联互联网科技有限公司 宁波允成互联网科技有限公司 金融科技与互联网金融 互联网金融和金融科技 太原新华互联网科技学校怎么样 宁波青枫互联网科技有限公司 互联网科技热点资讯 汽车互联网创新科技园 辽宁互联网新科技 美国互联网科技公司 陕西九四连强互联网科技有限公司 互联网科技手抄报图片
0