您的位置:首页 > Web前端

关于layer.photos图片点击无法弹出的问题分析

2016-11-26 15:08 627 查看
摘要: layer是一款口碑很好的弹层组件,详细的介绍可以参看官网介绍,网址是http://layer.layui.com/。本期在博主进行测试的过程中,发现需要顺利返回JSON并通过前端进行获取并显示照片需要注意以下内容:
1、如果测试可以将json打印出来,需要注意的是,json中的所有斜杠必须都是向右斜的(\),如果是本机测试的话,要注意的是获得的图片资源的路径格式必须为相对路径,也就是说路径钱不能像那些以c:盘符号开头的形式。

1、如果对于打印出的json无法自己判断是否正确的话,可以通过下面的这个网站来进行json校对,官网是:http://www.bejson.com/。如果校验后不报错可以基本判断输出的json格式是正确的。

2、注意在打印json的时候,如果是双引号套双引号,像这样 " "" " ;这样的话必须进行转义,写成:"\"\""。最后记得return xxx.toString();

3、要使用layer的照片图层可以将下载的组件放到WEB-INF目录下,在引用的时候,需要使用绝对路径进行引用,例:<script type="text/javascript" src="${pageContext.request.contextPath}/layer/layer.min.js"></script>,还需引入:extend/layer.ext.js,extend/layer.ext.js的引用也可以使用:layer.use('extend/layer.ext.js');来进行。使用$.getJSON("url",value,callback)。jQuery语法适用于layer。如图:



4、最后楼主在测试的时候发现自己使用的360极速浏览器在极速模式下点击后图片无法弹出,切换到兼容模式和IE9模式都是可以的,谷歌浏览器也可以正常弹出,各项功能指标正常!

5、下面给出一个我亲自测试好用的程序。

package mypicture;

import java.util.ArrayList;
//MVC进一步分层
public class PictureService {
public static String getJSON(ArrayList<Picture> list , String contextPath){//接收所有图片
StringBuilder str = new StringBuilder();//字符串连接
str.append("{");
str.append("\"status\": 1, ");
str.append("\"msg\": \"照片\", ");
str.append("\"title\": \"用户相册\", ");
str.append("\"id\": 0, ");
str.append("\"start\": 0, ");
str.append("\"data\": [ ");
//处理照片
for (int i = 0; i < list.size(); i++) {
str.append("{");
str.append("\"name\": \"" + list.get(i).getName() + "\", ");
str.append("\"pid\": 0, ");
//注意这个中间的是左斜杠,若是写成右斜杠"\\"出不来结果
str.append("\"src\": \""+ contextPath + "/" + list.get(i).getUrl() + "\", ");
str.append("\"thumb\": \"\", ");//缩略图
str.append("\"area\": [600,800] " );
str.append("}");
if (i < list.size()-1) {
str.append(",");//不是最后一项的话,加上,号
}else {
break;
}
}
str.append("]");
str.append("}");
return str.toString();
}
}
前端使用它的方法。

$(".picture").click(function() {
layer.use('extend/layer.ext.js');
$.getJSON("${pageContext.request.contextPath}/picture/getPic",{"picture.uid":this.lang},
function (data) {
layer.photos({
html:"",
json:data
});
});
});

 
注意这个中间的是左斜杠,若是写成右斜杠"\\"出不来结果,json校验会出错,如图是校验结果



改成"/"后,json校验正确,图片也可以正常弹出来。



这是谷歌浏览器弹出照片的效果:



参考文献:

http://layer.layui.com/1.8.5/ext.html

https://yq.aliyun.com/articles/60890

http://www.cnblogs.com/xiadongqing/p/5252579.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  json 前端 layer.photos
相关文章推荐