【原创】08. easyui form控件,回调参数存在后缀 audio controls="controls" style="display: none;"></audio>
- jQuery EasyUI 1.4.3
- springmvc 3.2.6
- 谷歌浏览器,内核版本 chrome 56.0.2924.87
- 360急速浏览器,内核版本 chrome 50.0.2661.102
查看版本方式:http://chrome.360.cn/test/core/
- easyui 使用如下:
123456
$(datagrid.dilogFormID).form('submit', {url: datagrid.submitUrl,iframe:false,onSubmit:function(param){},error:function(result){},success:function(res){...} - spingmvc code:
123456@RequestMapping(value="/saveOrUpdateParkAdditional.do")@ResponseBodypublic String saveOrUpdateParkAdditional(HttpServletRequest request) {return"itemTypeError";} - 先用谷歌浏览器提交from,返回响应:响应结果是正确的

但是,当我调试js查看success回调函数 参数时,发现 正确结构后面被追加了:<audio controls="controls" style="display: none;"></audio>
- 查看easyui源码,发现几处关键代码:
- 这个success回调函数:res 的值是在何处?如何得到到?
12345678910
functioncb() {varf = $("#"+ _507); // $("#" + _507) 何时创建的,什么内容?if(!f.length) {return;}f.unbind();vardata ="";try{varbody = f.contents().find("body");data = body.html();
- 再跟踪这个 body 的来源:
123456789101112(function($) {function_503(_504, _505) {varopts = $.data(_504,"form").options;$.extend(opts, _505 || {});var_506 = $.extend({}, opts.queryParams);if(opts.onSubmit.call(_504, _506) ==false) {return;}$(_504).find(".textbox-text:focus").blur();var_507 ="easyui_frame_"+ (newDate().getTime());var_508 = $("<iframe id="+ _507 +" name="+ _507 +"></iframe>").appendTo("body");// here原来easyui 添加了个iframe,并将服务端的返回值 塞进 该iframe#body

- 那么问题关键点,找到了,就是这个$(...).appendTo("body"),分别在 当前最高版本谷歌(chrome 56.0.2924.87) 和 360急速浏览器(chrome 50.0.2661.102)执行:
1$("<iframe id='t2eewqeqwst' name='tews2st'></iframe>").appendTo('body')验证发现:
- 谷歌,body 存在 auto 元素

补加测试:chrome 55 版本也存在 auto 元素 - 360急速浏览器,body 元素内是干净的。

- 原因找到了,但是至于怎么正面解决还不清楚。
不过我们可以返回非String来避免,比如:Map<String,String> 类型即可避免。
- springmvc controller:
123
@RequestMapping(value="/saveOrUpdateParkAdditional.do")@ResponseBodypublic List<Map<String,Object>> saveOrUpdateParkAdditional(HttpServletRequest request) { ....} - 当返回类型 String 时,或者是 List,Map等,内容含有中文是不会导致中文乱码的
- 当返回类型!String 时,且情形如下,会出现中文乱码:
123456@RequestMapping(value="/saveOrUpdateParkAdditional.do")@ResponseBodypublic String saveOrUpdatePark...{renturn"中文"} - sss
【原创】08. easyui form控件,回调参数存在后缀 audio controls="controls" style="display: none;"></audio>的更多相关文章
- 前端模板之EasyUI常用控件及参数
CSS类定义 div easyui-window window窗口样式 属性如下: 1) modal:是否生成模态窗口.true[是] false[否] 2) shadow:是否显示窗口阴影.true ...
- [转]easyui常用控件及样式API中文收藏
[转]easyui常用控件及样式收藏 2013-05-06 23:01 30612人阅读 评论(0) 收藏 举报 分类: java ee(5) 目录(?)[+] CSS类定义: div easyu ...
- EasyUI常用控件禁用方法
EasyUI常用控件禁用方法: 1.validatebox可以用的用法:前两种适用于单个的validatebox; 第三种应用于整个form里面的输入框; <1>.$("#id& ...
- C# 跨线程调用form控件技巧及byte[]与string型相互转换
跨线程调用form控件技巧 private delegate void MethodSocket(object obj);//使用托管 ss = "OK"; this.BeginI ...
- 疑似easyui本身bug:easyui时间控件问题,试了几个版本都不行
最近发现easyui时间控件的值格式不支持带斜杠的日期(2016/10/31),必须是2016-10-31这类的才能正常使用,否则默认初始化为当前时间 <input id="Retur ...
- 《zw版·Halcon-delphi系列原创教程》halconxlib控件列表
<zw版·Halcon-delphi系列原创教程>halconxlib控件列表 Halcon v11.01版,com控件,安装后,共有75个控件, 不过最重要的控件,只有两个,T ...
- 在WPF中添加Windows Form控件(包括 ocx控件)
首先,需要向项目中的reference添加两个dll,一个是.NET库中的System.Windows.Forms,另外一个是WindowsFormsIntegration,它的位置一般是在C:\ ...
- Jquery获取EasyUI时间控件的值
jquery easyui日期控件中,在页面里用JS拿到设置的日期值的方法 jquery easyui 日期框 有这样的一个日期文本框: <input type=" value=&qu ...
- easyui时间控件用js实时获取选定的时间的取法
easyui时间控件用js实时获取选定的时间的取法var datetime=$("#id").datetimebox("getValue");不能用 $(& ...
随机推荐
- Cordova各个插件使用介绍系列(四)—canvas2ImagePlugin保存二维码到手机本地
详情链接地址:http://www.ncloud.hk/%E6%8A%80%E6%9C%AF%E5%88%86%E4%BA%AB/cordova-4-canvas2imageplugin/ 在前面几篇 ...
- JS 事件派发器EventDispatcher
在Java和AS中经常用到EventDispatcher,写了一个JS版本的. addListener :添加事件监听器 removeListener:移除事件监听器 dispatchEvent:派发 ...
- 单人纸牌_NOI导刊2011提高(04)
单人纸牌 时间限制: 1 Sec 内存限制: 128 MB 题目描述 单人纸牌游戏,共 36 张牌分成 9 叠,每叠 4 张牌面向上.每次,游戏者可以从某两个不同的牌堆最顶上取出两张牌面相同的牌(如 ...
- javascript 闭包 转载
http://www.jb51.net/article/24101.htm var name = "the window"; var object = { name:"m ...
- 安装Dubbo注册中心(Zookeeper-3.4.6)
样例视频教程:http://www.roncoo.com/course/view/f614343765bc4aac8597c6d8b38f06fd Dubbo建议使用Zookeeper作为服务的注册中 ...
- Window文件目录挂载(mount)到linux系统目录下
1.先在windows下面共享需要挂载的目录. 2.确保linux与windows是在同一个局域网当中. 3.在linux下面创建一个需要挂载到的目录. 4.然后点击"添加",建立 ...
- 调用phprpc的时候出现Fatal error: Cannot redeclare gzdecode()
出现这个问题的原因是:php在5.4版本后,已经自包含了gzdecode()函数,开发者自己定义的gzdecode()函数会与其冲突. 在 ....\phpRPC\compat.php文件的第72行( ...
- linux使用crontab实现PHP执行定时任务
首先说说cron,它是一个linux下的定时执行工具.根用户以外的用户可以使用 crontab 工具来配置 cron 任务. 所有用户定义的 crontab 都被保存在/var/spool/cron ...
- java的三大特性,封装,继承,多态
封装 /** * 所谓封装,就是将对象具有的成员变量和成员函数包装和隐藏起来,让外界无法直接使用, * 被封装的成员只能通过某些特定的方式才能访问. * 实现封装有两个步骤: * 1.将不能暴露的 ...
- 基于邮件系统的远程实时监控系统的实现 Python版
人生苦短,我用Python~ 界内的Python宣传标语,对Python而言,这是种标榜,实际上,Python确实是当下最好用的开发语言之一. 在相继学习了C++/C#/Java之后,接触Python ...