- /**
- * @author elf
- */
- function myLogger(id)
- {
- id=id||'ADSLogWindow';
- var logWindow=null;
- var createWindow=function(){
- //取得新窗口在浏览器居中放置时左上角的位置
- var browserWindowSize=ADS.getBrowserWindowSize();
- var top=((browserWindowSize.height-200)/2)||0;
- var left=((browserWindowSize.width-200)/2)||0;
- //创建一个UL节点
- logWindow=document.createElement('UL');
- //指定ID ,以便在必要时在DOM树中能识别它
- logWindow.setAttribute('id',id);
- //在屏幕居中位置定位日志窗口
- logWindow.style.position = 'absolute';
- logWindow.style.top = top + 'px';
- logWindow.style.left = left + 'px';
- //设定固定的大小 ,并允许窗口内容滚动
- logWindow.style.width = '200px';
- logWindow.style.height = '200px';
- logWindow.style.overflow = 'scroll';
- logWindow.style.padding= '0';
- logWindow.style.margin= '0';
- logWindow.style.border= '1px solid black';
- logWindow.style.backgroundColor= 'white';
- logWindow.style.listStyle= 'none';
- logWindow.style.font= '10px/10px Verdana, Tahoma, Sans';
- //添加到文档主体中
- document.body.appendChild(logWindow);
- };
- this.writeRaw=function(message){
- if(!logWindow) createWindow();
- //创建列表项并适当的添加样式
- var li = document.createElement('LI');
- li.style.padding= '2px';
- li.style.border= '0';
- li.style.borderBottom = '1px dotted black';
- li.style.margin= '0';
- li.style.color= '#000';
- li.style.font = '9px/9px Verdana, Tahoma, Sans';
- //为日志节点添加信息
- if(typeof message == 'undefined') {
- li.appendchild(document.createTextNode('Message was undefined'));
- } else if(typeof li.innerHTML != undefined) {
- li.innerHTML = message;
- } else {
- li.appendchild(document.createTextNode(message));
- }
- //添加'UL'窗口日志中
- logWindow.appendChild(li);
- return this;;
- }
- }
- /**
- * The myLogger prototype public methods
- */
- myLogger.prototype = {
- /**
- * Writes a write a partially encoded version of the message to the log window.
- * If the message is not a String, the toString method will be
- * called on the object. If no toString() method exists, the typof
- * will be logged.
- * @param {Object} message
- */
- write: function (message) {
- // warn about null messages
- if(typeof message == 'string' && message.length==0) {
- return this.writeRaw('ADS.log: null message');
- }
- // if the message isn't a string try to call the toString() method,
- // if it doesn't exist simply log the type of object
- if (typeof message != 'string') {
- if(message.toString) return this.writeRaw(message.toString());
- else return this.writeRaw(typeof message);
- }
- // transform < and > so that .innerHTML doesn't parse the message as HTML
- message = message.replace(/</g,"<").replace(/>/g,">");
- return this.writeRaw(message);
- },
- /**
- * Writes a simple header to the log window.
- */
- header: function (message) {
- message = '<span style="color:white;background-color:black;font-weight:bold;padding:0px 5px;">' + message + '</span>';
- return this.writeRaw(message);
- }
- };
- if(!window.ADS) { window['ADS'] = {}; }
- window['ADS']['log'] = new myLogger();
- if(!console) var console = ADS.log;