标签 js 下的文章

ie 提示 ‘console’未定义的解决办法

方法:1.

    console=console||{log:function(){return;}

方法:2.

window.console = window.console || (function(){ 
var c = {}; c.log = c.warn = c.debug = c.info = c.error = c.time = c.dir = c.profile = c.clear = c.exception = c.trace = c.assert = c.dir = c.profile = c.clear = c.exception = c.trace = c.assert = function(){}; return c; return c; 
见天 评论 前端相关

[转]用原生JS简单封装AJAX

用原生JS仿照jquery写一个具有以上五个参数的$.ajax简单版本

首先,我们需要xhr对象。这对我们来说不难,封装成一个函数。

var createAjax = function() {
    var xhr = null;
    try {
        //IE系列浏览器
        xhr = new ActiveXObject("microsoft.xmlhttp");
    } catch (e1) {
        try {
            //非IE浏览器
            xhr = new XMLHttpRequest();
        } catch (e2) {
            window.alert("您的浏览器不支持ajax,请更换!");
        }
    }
    return xhr;
};

写核心函数

var ajax = function(conf) {
    // 初始化
    //type参数,可选
    var type = conf.type;
    //url参数,必填 
    var url = conf.url;
    //data参数可选,只有在post请求时需要
    var data = conf.data;
    //datatype参数可选    
    var dataType = conf.dataType;
    //回调函数可选
    var success = conf.success;
                                                                                         
    if (type == null){
        //type参数可选,默认为get
        type = "get";
    }
    if (dataType == null){
        //dataType参数可选,默认为text
        dataType = "text";
    }
    // 创建ajax引擎对象
    var xhr = createAjax();
    // 打开
    xhr.open(type, url, true);
    // 发送
    if (type == "GET" || type == "get") {
        xhr.send(null);
    } else if (type == "POST" || type == "post") {
        xhr.setRequestHeader("content-type",
                    "application/x-www-form-urlencoded");
        xhr.send(data);
    }
    xhr.onreadystatechange = function() {
        if (xhr.readyState == 4 && xhr.status == 200) {
            if(dataType == "text"||dataType=="TEXT") {
                if (success != null){
                    //普通文本
                    success(xhr.responseText);
                }
            }else if(dataType=="xml"||dataType=="XML") {
                if (success != null){
                    //接收xml文档    
                    success(xhr.responseXML);
                }  
            }else if(dataType=="json"||dataType=="JSON") {
                if (success != null){
                    //将json字符串转换为js对象  
                    success(eval("("+xhr.responseText+")"));
                }
            }
        }
    };
};

此函数的使用用法

ajax({
    type:"post",
    url:"test.jsp",
    data:"name=dipoo&info=good",
    dataType:"json",
    success:function(data){
        alert(data.name);
    }
});

 

五个参数只有url是必选的;type,dataType具有默认值,并且type的取值只能为post/get或其大写形式,dataType的取值只能为text/xml/json或其大写形式;而当type为get或者已经在url后附带参数则不用指定data;success为回调函数,按需求或写或不写。

原文链接:http://dipoo.diandian.com/post/2013-03-14/40048775665

 

 

 

评论 前端相关

[转]js 原生的绑定事件代码

/*********************$函数*******************/
function $(id) {
	return !id ? null : document.getElementById(id);
}

/*********************对象添加事件*******************/
function addEvent(obj,type,fun){
	obj=$(obj);
	if(obj.addEventListener){
		obj.addEventListener(type,fun);
		return true;
	}else if(obj.attachEvent){
		return obj.attachEvent("on"+type,fun);
	}else{
		return false;
	};
};
/*********************对象删除事件*******************/
function delEvent(obj,type,fun){
	obj=$(obj);
	if(obj.addEventListener){
		obj.removeEventListener(type,fun);
		return true;
	}else if(obj.attachEvent){
		obj.detachEvent("on"+type,fun);
		return true;
	}else{
		return false;
	};
};
336 条评论 前端相关

[转]用js检测客户端是不是移动设备等(引擎、浏览器、平台、操作系统)

原文url:http://www.uedbox.com/js-notes-checking-client-javascript/

346 条评论 前端相关

js获取textarea中的空格与回车


$=function(id){return document.getElementById(id);}
$("result").innerHTML=$("textarea").toString().replace(/\s/g," ").replace(/\r\n/g,"
");
388 条评论 前端相关