dojo.io.iframe VS dojo.request.iframe VS dojo form(Explorer Save As Prompt)
来源:互联网 发布:公众号 回复 php 代码 编辑:程序博客网 时间:2024/06/06 01:05
本文对比了 dojo.io.iframe 和 dojo.request.iframe 实现相同功能的用法,同时还给出了使用一般form来实现同样功能的代码。dojo.io.iframe的代码出自:fun with dojo.io.iframe这篇博文,该博文介绍了使用dfd解决脚本加载后iframe不能多次执行send请求的问题,比设置timeout更合理。dojo.request.iframe 和 dojo form的代码出自我的博文:Dojo导出Chart到PDF文件,如果想了解本文三段代码使用的情景,可以查看该博文。使用dojo 1.8发行版时,如果使用第二段dojo.request.iframe代码有问题,可以到Dojo SVN站点下载最新的iframe文件替换掉旧的iframe文件,dojo.request.iframe就可以正常工作了。
dojo.io.iframe:
// dfd used for save the return value of iframe.sendvar dfd;var sendSVGToServer = function (svg, title) {// sanitize svg, if doesn't santize svg before post, cannot work in Chromesvg = svg.replace(/ /g, ' ');// create a form with method postvar form = document.createElement('form');dojo.attr(form, 'name', 'svg_submit_form');dojo.attr(form, 'method', 'post');dojo.attr(form, 'multipart/form-data');document.body.appendChild(form);// create my postdatavar content = {/* set a bunch of parameters here that will be posted to the http handler */svg: svg,filename: title || 'chart'};// Deferred object returned by iframe.send and call cancel on it before trying to send another requestif (dfd) {dfd.cancel();}// make the requestdfd = dojo.io.iframe.send({url: 'export.php',form: form,content: content,error: function(response, ioArgs) {if (response.message === 'Deferred Cancelled') {return response;} else {console.error(response);}}});// get rid of the form created abovedocument.body.removeChild(form);}
dojo.request.iframe:
var sendSVGToServer = function (svg, title) {// sanitize svg, if doesn't santize svg before post, cannot work in Chromesvg = svg.replace(/ /g, ' ');// Cancel last iframe post requestif (dfd) {dfd.cancel();}dfd = iframe.post('export.php', {preventCache: true,data: {svg: svg,filename: title || 'chart'}}).then(function(response) {console.log('iframe get response');},function(error) {if (error.message === 'Request canceled') {// console.log('Last iframe post request is canceled');return error;} else {console.error('sendSVGToServer()->iframe.post(): ' + error);}});};
dojo form:
var sendSVGToServer2 = function(svg, title) {// sanitize svg, if doesn't santize svg before post, cannot work in Chromesvg = svg.replace(/ /g, ' ');var formNode = domConstruct.create('form', {name: 'svg_submit_form',method: 'post',action: 'export.php',enctype: 'multipart/form-data'}, win.body());domStyle.set(formNode, 'display', 'none');var createInput = function(name, value){domConstruct.create('input', {type: 'hidden',name: name,value: value}, formNode);};createInput('svg', svg);createInput('filename', title || 'chart');formNode.submit();domConstruct.destroy(formNode);}
- dojo.io.iframe VS dojo.request.iframe VS dojo form(Explorer Save As Prompt)
- dojo、iframe和FusionCharts兼容性
- dojo基础:dojo/request
- dojo
- dojo
- Dojo
- dojo
- dojo
- dojo
- Dojo学习笔记(6. dojo.io.IO & dojo.io.BrowserIO)
- Dojo学习笔记(6. dojo.io.IO & dojo.io.BrowserIO)
- Dojo学习笔记(6. dojo.io.IO & dojo.io.BrowserIO)
- Dojo 的Ajax, dojo/request <14>
- dojo dom-form模块
- 深入浅出dojo/request
- Request API in Dojo
- 深入浅出dojo/request
- dojo request handlers
- Tab切换5种方法
- GridView添加网格线
- POJ 1502 MPI Maelstrom(floyd)#by zh
- redis 源代码之数据结构(1)--链表的实现
- 杂谈--初到阜新。
- dojo.io.iframe VS dojo.request.iframe VS dojo form(Explorer Save As Prompt)
- Spring框架之Filter应用
- 用Java集合中的Collections.sort方法对list排序的两种方法
- web学习—javascript学习—函数(三)
- JS图片无缝滚动(方便使用)
- win7,ubuntu12.04亲测修复grub引导总结,步骤少,简单
- poj1325
- U盘做ubuntu安装盘之后,识别不到的解决方法
- PNG透明窗体全攻略(控件不透明)