json使用心得

上周遇到的几个耗时较长的bug

1.写页面iframe置换元素找不到,发现是缺少范围,加一行参数"window.parent.document"表示在父亲元素范围中查找(根本原因是自己查找自己找不到)

$("#frame",window.parent.document).attr("src","QoS_fake.html");

2.webstorm上面写得静态页面挂在c9系统下报404,原因是以为在eclipse下使用的还是相对路径,

举个例子,为什么requestmapping是这样:/action/layer1/layer2/test:多加了好多层?

是因为如果在页面中引用其他文件,比如echarts

<script src="../../../ui/echarts-2.2.7/build/dist/echarts.js"></script>

这时候根目录从浏览器地址栏最后一个"/"开始逐层向上找一直找到项目名c9(项目名),再向下找文件

归根到底还是相对位置从浏览器最后一个"/"开始解析,所以requestMapping路径配置最好和实际路径相同

小心得:

js代码中嵌入.attr("key","value");可以很方便的修改页面元素样式,用在jquery中是.val()方法

在调试工具里面输入$("calendar").val()可以看到日期控件的值

下面是json总结

首先是js对象

var person={name:"a",age:123} (或者这样 var person=new Object(),person.age=123)

可以访问person.name,发现是a

js对象时原生态的json对象,要声明一个json数组对象,可以这样,方括号代表数组,花括号代表对象

person=[{name:"a",age:123},{name:"b",age:22}]

访问的话:person[1].name,发现是b

person={name:"a",age:123}

这样访问:person[name],发现是a

json对象不用var声明,作用域也更广,是全局变量;这个局指的是方法体内;js对象则是局部变量

json和eclipse结合,由于静态页面和动态代码交互靠字符串:

如一个json字符串:jsonObj3 = “[{name:"a",age:123},{name:"b",age:22}]”

//对象转字符串

jsonStr2 = JSON.stringify(jsonObj3);

//字符串转对象

jsonObj3 = JSON.parse(jsonStr);

$.each(data,function(index,element)){

  element[index]

}

其中index不仅可以是数字,也可以是字符串,可以完成遍历

@responsebody

如果是list,list.add("xiaoli");list.add("xiaozhang")转化成["xiaoli","xiaozhang"]

访问list[0]

如果是map,map.put("name","xiaoli");map.put("age","111");转换成{name:xiaoli,age:123}

访问map[name]

最后一个问题,看别人的代码

有如下方法:

$$.parse();

不明白是什么意思?

其实在jcdf.js中

var jcdf = new jcdfObject();
var $$ = jcdf;

也就是说:jcdf是一个js对象,里面有方法,相当于jcdf.parse()方法调用

转帖,关于页面跳转:

一、背景
A,B,C,D都是jsp,D是C的iframe,C是B的iframe,B是A的iframe,在D中跳转页面的写法区别如下。


二、JS跳转
window.location.href、location.href 本页面跳转,D页面跳转
parent.location.href 上一层页面跳转,C页面跳转
top.location.href 最外层页面跳转,A页面跳转


三、链接或者form
D页面中有form
<form>: form提交后D页面跳转
<form target="_blank">: form提交后弹出新页面
<form target="_parent">: form提交后C页面跳转
<form target="_top"> : form提交后A页面跳转


四、刷新
parent.location.reload():C页面刷新
window.opener.document.location.reload():C页面刷新(使用子窗口的opener对象来获得父窗口对象)
top.location.reload():A页面刷新

原文地址:https://www.cnblogs.com/UbalancedKiss/p/5910781.html