浏览器远程调试 debug.js

简爱代码>JavaScript2016-5-3 23:5529440

在线调试的时候用着比较方便,(例如:在微信网页端 不用再使用 alert输出信息了)

可以使用debug('测试');通过WebSocket 发送信息了,至于 其他端的代码就不在一一奉上了


/*
 * 在线调试
 * 简爱<sc.419@qq.com>
 * 20160503
 *
 * <script src="***/debug.js?debug_id=***"></script>
 * <script>debug('ja')</script>
 */
function debug(a){
	debug.status = debug.status || false;
	debug.data = debug.data || [];

	if(!debug.id){
		return;
	}
	// 建立链接
	debug.link = function(){
		WebSocket = window.WebSocket || window.MozWebSocket;
		debug.ws = new WebSocket('ws://ws.asilu.com:8000');
		debug.ws.onopen = function(){
			debug.status = true;
			// 连接成功 循环消息队列
			for(k in debug.data){
				debug.send(debug.data[k]);
				delete debug.data[k];
			}
		};
		debug.ws.onclose = function() {
			debug.status = false;
		};
	};

	// 发送调试信息
	debug.send = function(a){
		if(debug.status){
			debug.ws.send(JSON.stringify({
				to: debug.id,
				data: {
					host: debug.host,
					info: a
				}
			}));
			return true;
		}
		return undefined;
	};

	if(!debug.status){
		// 不在线,建立连接,加入消息队列
		debug.link();
		debug.data.push(a);
		return false;
	}else{
		// 直接发送消息
		return debug.send(a);
	}

}

(function(){
	var a = document.getElementsByTagName('script'),
		b = /(\?|&)debug_id=([^&]*)(&|$)/;
	c = a[a.length - 1].src.match(b);
	if(c == null){
		return;
	}else{
		debug.id = c[2];
	}
	debug.host = window.location.host || window.location.pathname.replace(/[^\w\d-]+/g, '_');
})();


本文出自简爱博客,转载时请注明出处及相应链接。

    发表评论

    电子邮件地址不会被公开。必填项已用*标注