关于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、下面给出一个我亲自测试好用的程序。
注意这个中间的是左斜杠,若是写成右斜杠"\\"出不来结果,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
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
相关文章推荐
- 关于layer.photos图片点击无法弹出的问题分析。
- 关于IOS某图片添加控件,图片从相册或拍照保存后,再次进入时点击放大图无法显示的问题
- 关于点击菜单项或按钮无法弹出对话框的问题(使用了RichEdit控件)
- 关于V5.7 正式版 自定义字段图片上传无法点击选择的问题解决!
- 关于popupwindow中含有EditText,点击无法弹出键盘的问题
- 关于Google浏览器使用layer弹出层video标签播放视屏无法全屏播放问题
- 关于editext 进入获得焦点,点击无法弹出输入法问题,要弹出却不弹出
- 关于webview点击输入框无法弹出软键盘问题
- 解决syszuxpinyin重复点击lineEdit无法弹出输入法界面和无法删除原有内容问题
- java 使用ireport无法显示图片问题分析
- 关于使用图片轮播插件无法实现效果的问题
- 关于图片资源在android2.1/2.2/2.3下无法显示的问题以及解决方法
- 关于div中图片无法底部对齐的问题
- 关于解决弹出”存储空间不足,无法完成此操作“的错误问题
- 关于ios5上的浏览器无法上传图片的问题
- 关于SHLoadImageFile无法载入图片的问题
- 使用Flex中Image组件图片无法呈现问题分析
- 关于无法显示该网页,弹出对话框显示"Internet Explorer无法打开Internet站点xxx,已终止操作"问题的解决方法
- 关于“插入图片”等功能无法使用的问题
- 关于使用了QtWebKit的PyQt程序打包后无法显示网页图片的问题(Mac0S和windows)