在带有js项目开发中:
1 要属性新的js类库
2 了解某一个DOM对象的属性
要么翻看API,要么使用alert或者其他日志组件。alertObj就是这样的一个组件。
alertObj,是一个非常小的js方法,用来打印某一个对象的属性。
只要在你们工程的JS通用工具类里边(我想每个项目都应该会有吧)添加这个方法,就可以随时调用了,
优点就是小和方便,不想那么多打的日志组件,alertObj仅仅是一个方法,不需要任何页面元素的支持。
alertObj,将alert方法用到极致;alertObj传统而又不简单。
实例:
<html>
<script>
/*打印对象属性
只打印对象的直接属性,即第一层属性
如果对象属性个数大于15个,则每三个属性为一行,否则一个属性为一行
@JSON 支持JSON参数传递或者直接把对象作为参数传递
JSON可用参数:
@obj:打印的对象
@key:对象属性的过滤条件,模糊匹配(不区分大小写) 默认为空
@tab:每个属性前边的制表符号。默认为空
@title:题目,默认为对象属性
@showFun:是否显示方法体内容 默认为false
*/
var alertObj=function(JSON){
JSON = JSON||{};
if(!!JSON.obj===false){
JSON = {obj:JSON};
}
var aObj = JSON.obj||{};//打印对象
var key = JSON.key ||"";//属性名称过滤条件
var tab =JSON.tab ||"";//制表位
var title =JSON.title ||"对象属性";//题目
var showFun = JSON.showFun || false;//是否显示方法体内容 默认为false
//TODO 属性排序
var propertys = [];
for(var o in aObj){
//没有属性过滤条件,或者属性包含过滤条件。
if(!!key===false || (!!key===true && (o+"").toLowerCase().indexOf(key)>=0) ){
propertys.push(o);
}
}
propertys.sort();
var len = propertys.length;
var index = 1;
var max =20;//每次最多打印max个属性(受alert可显示空间限制)
var v = title+":\n";
for(var i in propertys){
var o = propertys[i];
if(typeof(aObj[o])!=="object" && typeof(aObj[o])!=="function" ){
v+=(tab+"-"+o+":"+aObj[o]+"\n");
}else if(typeof(aObj[o])=="function"){
if(showFun!=true){
v+=(tab+"+"+o+":[function]\n");
}else{
v+=(tab+"+"+o+":"+aObj[o]+"\n");
}
}else{
v+=(tab+"+"+o+":[object]\n");
}
if(index++%max==0){
alert(v);
//第二次打印将会追加编号
v = title+Math.ceil(index/max)+":\n"; ;//置空,从新累加
}
}
if(len%max!=0 || len==0){//打印最后一次 | len=0表示没有匹配的属性
alert(v);
}
//alert("len = "+len+",max ="+max+","+len%max);
}
function test(){
//打印dom对象
alertObj(window);
alertObj({obj:window,key:"load",title:"window带有load的属性"});
//构建js对象
var perosn = {Name:"abc",age:123,son:{Name:"xx",age:23,cry:function(){alert('妈妈,我要喝奶');}}};
//打印js对象
alertObj({obj:perosn,tab:"#",title:"person对象属性"});
alertObj({obj:perosn.son,title:"persond对象son属性的属性"});
alertObj({obj:perosn.son,title:"persond对象son属性的属性(显示方法体)",showFun:true});
}
</script>
<body>
<input type="button" value="test" onclick="test()" >
</body>
</html>
附件是效果图和实例。
- 大小: 147.5 KB
分享到:
相关推荐
打印服务重启脚本
利用脚本打印出自己想要的块,跟EXCEL无关的打印功能,主要是运用脚本来打印!
JavaScript,脚本,文档对象结构图,JPG图片 JavaScript,脚本,文档对象结构图,JPG图片 JavaScript,脚本,文档对象结构图,JPG图片 JavaScript,脚本,文档对象结构图,JPG图片 JavaScript,脚本,文档对象结构图,JPG图片 ...
[易语言源码]-脚本对象的枚举对象源码
通过自定义对象来操作一些QTP录制脚本无法驱动的对象。
一、部署包下载地址 1.百度网盘 ...提取码:to74 二、使用方法 tar xvf prometheus_V2.15.tgz cd install_prom ...#FUNCTION:部署Prometheus+Grafana+Alertmanager #VERSION:Prometheus-V2.15 Grafana-V5.3.
易语言脚本控制对象源码,脚本控制对象,排序文本,逐字分割,创建对象,清除对象,GetLanguage,GetState,GetSitehWnd,GetTimeout,GetAllowUI,GetUseSafeSubset,GetModules,GetError,GetCodeObject,GetProcedures,Set...
SIMATIC WINCC V7.5使用C脚本通过画面结合结构变量实现多个电机的控制功能
JS脚本运行缺少对象
TCL脚本语言面向对象编程,对于自动化测试有很大的帮助
1)SAP HCI上打印IFLOW的日志。2)能看到HTTP详细信息,包括header,body,property等信息。
如何在WinCC运行系统中通过脚本来改变对象颜色(背景、边框、文本)?
WINCC中使用C 脚本和 VBS 改变对象颜色的解决方法
cat /mnt/log_function.sh #!/bin/bash #log function ####log_correct函数打印正确的输出到日志文件 function log_correct () { DATE=`date “+%Y-%m-%d %H:%M:%S”` ####显示打印日志的时间...log_error打印shell脚本
2、左边数据库对象(Database Objects)中选择对应的表,右边目标(Target)中选择文件(File)选择脚本存储的名称及位置,再在上面选择高级(Advanced)。 3、去掉记录选项(Record Options)中插入记录(Insert ...
Photoshop批量排版寸照打印脚本,使用时,先新建一个A4(或A3)文档,分辨率为300px/inch,然后运行此脚本,在弹出的对话框中,选择需要排版的一个或多个照片(照片需先进行裁剪)文件,其余参数可采用默认设置,点击...
打印出带颜色的字符用到的脚本包color
易语言脚本取对象源码,脚本取对象,GetObject
Unity3D脚本:JS对象脚本2