`
dwphper
  • 浏览: 18605 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
最近访客 更多访客>>
社区版块
存档分类
最新评论

dede-ajax-js应用

阅读更多

<!--
//xmlhttp和xmldom对象
var DedeXHTTP = null;
var DedeXDOM = null;
var DedeContainer = null;
var DedeShowError = false;
var DedeShowWait = false;
var DedeErrCon = "";
var DedeErrDisplay = "下载数据失败";
var DedeWaitDisplay = "正在下载数据...";

//获取指定ID的元素

function $DE(id) {
    return document.getElementById(id);
}

//gcontainer 是保存下载完成的内容的容器
//mShowError 是否提示错误信息
//DedeShowWait 是否提示等待信息
//mErrCon 服务器返回什么字符串视为错误
//mErrDisplay 发生错误时显示的信息
//mWaitDisplay 等待时提示信息
//默认调用 DedeAjax('divid',false,false,'','','')

function DedeAjax(gcontainer,mShowError,mShowWait,mErrCon,mErrDisplay,mWaitDisplay)
{
    DedeContainer = gcontainer;
    DedeShowError = mShowError;
    DedeShowWait = mShowWait;
    if(mErrCon!="") DedeErrCon = mErrCon;
    if(mErrDisplay!="") DedeErrDisplay = mErrDisplay;
    if(mErrDisplay=="x") DedeErrDisplay = "";
    if(mWaitDisplay!="") DedeWaitDisplay = mWaitDisplay;


    //post或get发送数据的键值对
    this.keys = Array();
    this.values = Array();
    this.keyCount = -1;
    this.sendlang = 'gb2312';

    //请求头类型
    this.rtype = 'text';

    //初始化xmlhttp
    //IE6、IE5
    if(window.ActiveXObject) {
        try { DedeXHTTP = new ActiveXObject("Msxml2.XMLHTTP");} catch (e) { }
        if (DedeXHTTP == null) try { DedeXHTTP = new ActiveXObject("Microsoft.XMLHTTP");} catch (e) { }
    }
    else {
        DedeXHTTP = new XMLHttpRequest();
    }

    //增加一个POST或GET键值对
    this.AddKeyN = function(skey,svalue) {
        if(this.sendlang=='utf-8') this.AddKeyUtf8(skey, svalue);
        else this.AddKey(skey, svalue);
    };
   
    this.AddKey = function(skey,svalue) {
        this.keyCount++;
        this.keys[this.keyCount] = skey;
        svalue = svalue+'';
        if(svalue != '') svalue = svalue.replace(/\+/g,'$#$');
        this.values[this.keyCount] = escape(svalue);
    };

    //增加一个POST或GET键值对
    this.AddKeyUtf8 = function(skey,svalue) {
        this.keyCount++;
        this.keys[this.keyCount] = skey;
        svalue = svalue+'';
        if(svalue != '') svalue = svalue.replace(/\+/g,'$#$');
        this.values[this.keyCount] = encodeURI(svalue);
    };

    //增加一个Http请求头键值对
    this.AddHead = function(skey,svalue) {
        this.rkeyCount++;
        this.rkeys[this.rkeyCount] = skey;
        this.rvalues[this.rkeyCount] = svalue;
    };

    //清除当前对象的哈希表参数
    this.ClearSet = function() {
        this.keyCount = -1;
        this.keys = Array();
        this.values = Array();
        this.rkeyCount = -1;
        this.rkeys = Array();
        this.rvalues = Array();
    };


    DedeXHTTP.onreadystatechange = function() {
        //在IE6中不管阻断或异步模式都会执行这个事件的
        if(DedeXHTTP.readyState == 4){
            if(DedeXHTTP.status == 200)
            {
                if(DedeXHTTP.responseText!=DedeErrCon) {
                    DedeContainer.innerHTML = DedeXHTTP.responseText;
                }
                else {
                    if(DedeShowError) DedeContainer.innerHTML = DedeErrDisplay;
                }
                DedeXHTTP = null;
            }
            else { if(DedeShowError) DedeContainer.innerHTML = DedeErrDisplay; }
        }
        else { if(DedeShowWait) DedeContainer.innerHTML = DedeWaitDisplay; }
    };

    //检测阻断模式的状态
    this.BarrageStat = function() {
        if(DedeXHTTP==null) return;
        if(typeof(DedeXHTTP.status)!=undefined && DedeXHTTP.status == 200)
        {
            if(DedeXHTTP.responseText!=DedeErrCon) {
                DedeContainer.innerHTML = DedeXHTTP.responseText;
            }
            else {
                if(DedeShowError) DedeContainer.innerHTML = DedeErrDisplay;
            }
        }
    };

    //发送http请求头
    this.SendHead = function()
    {
        //发送用户自行设定的请求头
        if(this.rkeyCount!=-1)
        {
            for(var i = 0;i<=this.rkeyCount;i++)
            {
                DedeXHTTP.setRequestHeader(this.rkeys[i],this.rvalues[i]);
            }
        }
         if(this.rtype=='binary'){
         DedeXHTTP.setRequestHeader("Content-Type","multipart/form-data");
    }else{
        DedeXHTTP.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
    }
};

//用Post方式发送数据
this.SendPost = function(purl) {
    var pdata = "";
    var i=0;
    this.state = 0;
    DedeXHTTP.open("POST", purl, true);
    this.SendHead();
    //post数据
    if(this.keyCount!=-1)
    {
        for(;i<=this.keyCount;i++)
        {
            if(pdata=="") pdata = this.keys[i]+'='+this.values[i];
            else pdata += "&"+this.keys[i]+'='+this.values[i];
        }
    }
    DedeXHTTP.send(pdata);
};

//用GET方式发送数据
this.SendGet = function(purl) {
    var gkey = "";
    var i=0;
    this.state = 0;
    //get参数
    if(this.keyCount!=-1)
    {
        for(;i<=this.keyCount;i++)
        {
            if(gkey=="") gkey = this.keys[i]+'='+this.values[i];
            else gkey += "&"+this.keys[i]+'='+this.values[i];
        }
        if(purl.indexOf('?')==-1) purl = purl + '?' + gkey;
        else  purl = purl + '&' + gkey;
    }
    DedeXHTTP.open("GET", purl, true);
    this.SendHead();
    DedeXHTTP.send(null);
};

//用GET方式发送数据,阻塞模式
this.SendGet2 = function(purl) {
    var gkey = "";
    var i=0;
    this.state = 0;
    //get参数
    if(this.keyCount!=-1)
    {
        for(;i<=this.keyCount;i++)
        {
            if(gkey=="") gkey = this.keys[i]+'='+this.values[i];
            else gkey += "&"+this.keys[i]+'='+this.values[i];
        }
        if(purl.indexOf('?')==-1) purl = purl + '?' + gkey;
        else  purl = purl + '&' + gkey;
    }
    DedeXHTTP.open("GET", purl, false);
    this.SendHead();
    DedeXHTTP.send(null);
    //firefox中直接检测XHTTP状态
    this.BarrageStat();
};

//用Post方式发送数据
this.SendPost2 = function(purl) {
    var pdata = "";
    var i=0;
    this.state = 0;
    DedeXHTTP.open("POST", purl, false);
    this.SendHead();
    //post数据
    if(this.keyCount!=-1)
    {
        for(;i<=this.keyCount;i++)
        {
            if(pdata=="") pdata = this.keys[i]+'='+this.values[i];
            else pdata += "&"+this.keys[i]+'='+this.values[i];
        }
    }
    DedeXHTTP.send(pdata);
    //firefox中直接检测XHTTP状态
    this.BarrageStat();
};


} // End Class DedeAjax

//初始化xmldom
function InitXDom() {
    if(DedeXDOM!=null) return;
    var obj = null;
    // Gecko、Mozilla、Firefox
    if (typeof(DOMParser) != "undefined") {
        var parser = new DOMParser();
        obj = parser.parseFromString(xmlText, "text/xml");
    }
    // IE
    else {
        try { obj = new ActiveXObject("MSXML2.DOMDocument");} catch (e) { }
        if (obj == null) try { obj = new ActiveXObject("Microsoft.XMLDOM"); } catch (e) { }
    }
    DedeXDOM = obj;
};



//读写cookie函数
function GetCookie(c_name)
{
    if (document.cookie.length > 0)
    {
        c_start = document.cookie.indexOf(c_name + "=")
        if (c_start != -1)
        {
            c_start = c_start + c_name.length + 1;
            c_end   = document.cookie.indexOf(";",c_start);
            if (c_end == -1)
            {
                c_end = document.cookie.length;
            }
            return unescape(document.cookie.substring(c_start,c_end));
        }
    }
    return null
}

function SetCookie(c_name,value,expiredays)
{
    var exdate = new Date();
    exdate.setDate(exdate.getDate() + expiredays);
    document.cookie = c_name + "=" +escape(value) + ((expiredays == null) ? "" : ";expires=" + exdate.toGMTString()); //使设置的有效时间正确。增加toGMTString()
}

 

//ajax调用
function ajax(id,url)
{
    var taget_obj = document.getElementById(id);
    myajax = new DedeAjax(taget_obj,false,false,'','','');
    myajax.SendGet2(url);
    DedeXHTTP = null;
}

-->


<div id="ajax1"><a href="javascript:ajax('ajax1','xx.php')">AJAX测试</a></div>

分享到:
评论

相关推荐

    dede最新版计数器

    在现代Web应用中,Ajax(异步JavaScript和XML)技术被广泛用于在不刷新整个页面的情况下与服务器交换数据并更新部分网页内容。在这个计数器系统中,当用户访问网站或执行特定操作时,前端可能会通过Ajax调用`...

    dede瀑布流插件

    2. **Ajax**:Ajax是Asynchronous JavaScript and XML的缩写,虽然现在很少使用XML,但这个术语仍然保留。在无限滚动中,Ajax用于异步向服务器请求新的内容数据,而不会刷新整个页面。 3. **响应式设计**:为了适应...

    DEDE超级标签详解

    除了基础功能,DEDE超级标签还可以结合PHP、JavaScript等进行更复杂的应用,如动态加载、交互式展示等。例如,通过AJAX配合DEDE超级标签实现无刷新加载更多内容。 总结来说,DEDE超级标签是DEDE CMS的核心组成部分...

    dede cms html 页面

    在DEDE CMS的淘宝客模板中,可能会包含一些JavaScript代码用于处理用户交互,如点击事件、表单验证、AJAX异步请求等。对于初学者来说,理解JavaScript的基本语法、变量、函数、DOM操作等知识至关重要。 学习这8套...

    dede瀑布流

    DEDE CMS(织梦内容管理系统)是一款基于PHP+MySQL开发的开源CMS,广泛应用于网站建设和内容管理。在DEDE CMS中实现瀑布流,需要开发者具备一定的HTML、CSS、JavaScript以及PHP基础。 3. **实现瀑布流的技术**: ...

    前端学生作业毕设实训素材-驾校类企业dede网站模板.rar

    这个项目基于HTML、CSS和JavaScript等前端技术构建,可能还涉及到框架如Bootstrap或Vue.js,用于创建一个驾校类企业的网站模板。下面我们将深入探讨这个实训素材中的关键知识点。 首先,`index.html`是项目的主入口...

    学校实训毕业商用项目-dede电子工业企业通用模板.zip

    在这个项目中,学生可能需要编写JavaScript代码来实现动态效果、表单验证或与服务器的异步通信(AJAX)。 5. **响应式设计**:由于电子工业企业通用模板需要适应不同设备,学生需要了解响应式设计,通过媒体查询和...

    布尔教育_html教程_课堂代码

    以上知识点覆盖了从HTML入门、PHP编程基础与实战、JavaScript/Ajax进阶、MySQL数据库应用、Linux操作系统操作、开源产品二次开发,到就业技能提升等全方位的Web开发技术栈,为学员提供全面的理论学习与实践操作经验...

    dede表单提交pc手机端自适应代码

    2. `js`:这可能是一个JavaScript文件或文件夹,用来处理表单的交互逻辑和数据验证。JavaScript是前端开发的关键技术,可以用来控制表单的行为,例如提交事件的处理、错误提示的显示,以及可能的AJAX异步提交等。 3...

    学校实训毕业商用项目-HTML5简约网络工作室dede模板.zip

    JavaScript也可能在这个模板中起到关键作用,通过AJAX进行异步数据交换,实现动态加载和无刷新更新,或者使用jQuery和其他库简化DOM操作,提升交互性。此外,可能还使用了Bootstrap或其他前端框架来快速构建布局和...

    前端学生作业毕设实训素材-红色票样业务企业通用模板.zip

    这个压缩包文件“前端学生作业毕设实训素材-红色票样业务企业通用模板.zip”包含了一个完整的前端应用源码开发示例,适用于毕业设计和学习。这个项目可能是一个基于Web的票务管理系统,以红色票样为主题,适用于各种...

    糗事百科源码

    值得注意的是,随着AJAX(Asynchronous JavaScript and XML)的普及,糗事百科的源码可能也利用了异步请求技术,实现了无刷新的数据更新,提升了用户体验。 数据库层面,糗事百科很可能采用了关系型数据库系统,如...

    前端学生作业毕设实训素材-白银贵金属企业站源码.rar

    - **JavaScript**:理解基本语法,学习DOM操作、事件处理和AJAX(异步JavaScript和XML),以实现交互功能。 - **PHP**:掌握基本的PHP语法,了解如何与MySQL数据库交互,以及处理HTTP请求。 - **MySQL**:了解数据库...

    前端学生作业毕设实训素材-大气环保园林类企业源码.rar

    6. **前端开发技术**:这个项目可能涉及了Bootstrap、Vue.js、jQuery等前端框架或库,也可能用到了响应式设计、Ajax异步请求、CSS预处理器(如Sass或Less)等技术。 7. **学习要点**:学生可以从这个项目中学到如何...

    瀑布流代码

    瀑布流的核心原理是利用JavaScript和CSS实现,通常结合Ajax进行动态加载,以便在用户滚动页面时自动加载新的内容。在dede模版的瀑布流代码中,可能包括以下关键组件: 1. **HTML结构**:页面的HTML部分需要设定合适...

    前端学生作业毕设实训素材-大气化工燃料类企业公司网站模板.rar

    可能在`dede`或`js`目录中,有JavaScript文件用于处理表单验证、动画效果、导航菜单交互等。通过分析这些代码,可以了解DOM操作、事件处理、AJAX请求等JavaScript基础知识。 5. **图片资源**: `images`目录包含了...

    前端学生作业毕设实训素材-刷卡pos机金融类模板(带手机端).rar

    这个项目为学生提供了一个全面的前端开发实践平台,涵盖了从基本的HTML、CSS到复杂的JavaScript应用、响应式设计和数据库交互等多个方面。通过研究和实践这个项目,学生能够提升自己的前端开发技能,并为毕业设计...

    前端学生作业毕设实训素材-艺术书画研究院类企业网站模板.rar

    这个压缩包文件“前端学生作业毕设实训素材-艺术书画研究院类企业网站模板.rar”包含了一个完整的前端应用源码,适合学生进行毕业设计学习。它提供了构建艺术书画研究院类企业网站所需的所有基本元素和功能,涵盖了...

    前端学生作业毕设实训素材-带动态数据的贵金属金融类企业网站模板.rar

    配合前端的JavaScript,可以构建出交互性强的Web应用。 通过这个项目,学生可以学习到前端开发的全流程,包括页面布局、样式设计、数据交互、动态加载等内容,同时也能了解到如何结合PHP进行后端开发,为未来的Web...

    前端学生作业毕设实训素材-蓝色简洁集团企业通用模板.rar

    - **JavaScript交互**:通过查看JavaScript代码,可以学习到如何实现动态效果和用户交互,如表单验证、AJAX异步请求等。 - **PHP基础**:如果index.php包含PHP代码,可以了解后端语言如何与前端交互,处理数据和逻辑...

Global site tag (gtag.js) - Google Analytics