前端开发

 首页 > 前端开发 > javascript > 利用JAVASCRIPT异步提交表单图片

利用JAVASCRIPT异步提交表单图片

分享到:
【字体:
导读:
          今天我为大家带来一个无刷新提交表单图片,然后从新生成本地图片。 在一次工作中做了一个这样的功能, 由上图看出,利用DOM做了一个图片编辑UI。 流程: 当触发编辑时候调用JS生...

今天我为大家带来一个无刷新提交表单图片,然后从新生成本地图片。

在一次工作中做了一个这样的功能,

blob.png

由上图看出,利用DOM做了一个图片编辑UI。

流程:

  1. 当触发编辑时候调用JS生成IFRAME窗口并且生成表单上传所有DOM

  2. 自动触发子窗口上传功能

//图片上传
	doc.getElementById("imgEdit").onclick = function(){
		img_edit();
}
//图片编辑
function img_edit(){
	var ifarme = doc.createElement("iframe");
	ifarme.setAttribute("id","iframeImg");
	doc.body.appendChild(ifarme);
	//doc.getElementById("iframeImg").style.display = "none";
	
	var imgForm = doc.createElement("form");
	imgForm.setAttribute("action","test.php"); //设置img提交地址
	imgForm.setAttribute("method","post"); 
	imgForm.setAttribute("enctype","multipart/form-data");
	
	ifarme.contentWindow.document.body.appendChild(imgForm);
	iframeFormObj = ifarme.contentWindow.document.getElementsByTagName('form')[0];
	
	var img = doc.createElement("input");
	img.type  = "file";
	img.name = "imgUpload";
	img.id = "imgUpload";
	imgForm.appendChild(img);
	
	var ev = doc.createEvent('MouseEvents');
	// initMouseEvent的参数比较多,可以参见API文档
	// https://developer.mozilla.org/en-US/docs/Web/API/event.initMouseEvent
	ev.initMouseEvent('click', true, true, window, 1, 0, 0, 0, 0, false, false, false, false, 0, null);
	 
	ifarme.contentWindow.document.getElementById('imgUpload').dispatchEvent(ev);		
	img.onchange = function(){
		iframeFormObj.submit();
		//document.body.removeChild(ifarme);
	}
	//提交后,页面执行以下JS
	//window.parent.document.getElementById('imgFile').value = "结果";
	//window.parent.document.getElementById('imgFace').setAttribute("src","结果");
	
}


分享到:
HTML5的WebSocket用法详解一、什么是WebS...
在过去我们想保持与服务端通信,只能用长连接,或者轮询法,然而... 在HTML5规范中,我最喜欢的Web技术就是正迅速变得流行的WebSocket API。WebSocket提供了一个受欢迎的技术,以替代我们过去几年一直在用的Ajax技术。 这个新的API提供了一个方法,从客户端使用简单的语法有效地推动消息到服务器。 让我们看一看HTML5的WebS...
js省,市,县三级联动详解
今天为大家带来JS编写的三级联动。 主要思路是 定义三大数组分别存放省市县的数据 定义三个表单select,设置第一个表单值为省级数据 分别绑定每个表单事件onchange并且获取当前值 把获取到的值和数组匹配生成第二个表单值以此类推 注意数组的键和值对 代码如下: /* * 全国三级城市联动 js版 */ function Dsy(){ t...
  •         php迷,一个php技术的分享社区,专属您自己的技术摘抄本、收藏夹。
  • 在这里……