打开新窗口以post方式提交

window.open以post方式提交

1、按钮准备

<input id="btn_amp" type="button" value="大表系统"/>

<input id="btn_amp2" type="button" value="大表系统"/>

2、js方法

$(function(){
	$("#btn_amp").click(function(){
		var username="<%=username%>",password="<%=password%>";
		postUrl('<%=ampUrl%>'+'login.do',username,password);
	});
	$("#btn_amp2").click(function(){
		var username="<%=username%>",password="<%=password%>";
		//var data = '{username:'+username+',password:'+password+'}';
		openPostWindow('<%=ampUrl%>'+'login.do','大表统一远传',username,password);
	});
});
//以post形式在本页打开
function postUrl(url,username,password){
	  var f=document.createElement("form");
	  f.action=url;
	  f.method="post";//指定为post
	  f.innerHTML="<input type='hidden' name='username' value='"+username+"'/>"+
	              "<input type='hidden' name='password' value='"+password+"'/>";
	  document.body.appendChild(f);  
	  f.submit()
}

//以post形式打开新的页面,可以传递多个参数
function openPostWindow(url,windowname,username,password){         
   var tempForm = document.createElement("form");       
   tempForm.id="tempForm1";         
   tempForm.method="post";        
   tempForm.action=url;       
   //open方法不能设置请求方式,一般网页的post都是通过form来实现的。  
   //如果仅仅模拟form的提交方式,那么open方法里那种可设置窗体属性的参数又不能用。  
   //最后想办法整了这么一个两者结合的方式,将form的target设置成和open的name参数一样的值,通过浏览器自动识别实现了将内容post到新窗口中  
   tempForm.target=windowname;         
   tempForm.innerHTML="<input type='hidden' name='username' value='"+username+"'/>"+
   "<input type='hidden' name='password' value='"+password+"'/>";  
   // tempForm.attachEvent("onsubmit",function(){ openWindow(name); });     //IE
   tempForm.addEventListener("onsubmit",function(){ openWindow(windowname); });   //chrome    
   document.body.appendChild(tempForm);          
   //tempForm.fireEvent("onsubmit"); //IE    
   tempForm.dispatchEvent(new Event("onsubmit"));//chrome    
   //必须手动的触发,否则只能看到页面刷新而没有打开新窗口  
   tempForm.submit();       
   document.body.removeChild(tempForm);      
}   
//以post形式打开新的页面,只能传递一个参数
function openPostWindow2(url, windowname, data)       

{       
  
   var tempForm = document.createElement("form");       
  
   tempForm.id="tempForm1";       
  
   tempForm.method="post";       
     
   //url  
   tempForm.action=url;       
   //open方法不能设置请求方式,一般网页的post都是通过form来实现的。  
   //如果仅仅模拟form的提交方式,那么open方法里那种可设置窗体属性的参数又不能用。  
   //最后想办法整了这么一个两者结合的方式,将form的target设置成和open的name参数一样的值,通过浏览器自动识别实现了将内容post到新窗口中  
   tempForm.target=content;       
   
   var hideInput = document.createElement("input");       
  
   hideInput.type="hidden";       
  
   //传入参数名,相当于get请求中的content=  
   hideInput.name= "content";  
  
   //传入传入数据,只传递了一个参数内容,实际可传递多个。  
   hideInput.value= data;     
  
   tempForm.appendChild(hideInput);        
   // tempForm.attachEvent("onsubmit",function(){ openWindow(name); });     //IE
   tempForm.addEventListener("onsubmit",function(){ openWindow(windowname); });   //chrome  
  
   document.body.appendChild(tempForm);       
   
   //tempForm.fireEvent("onsubmit"); //IE    
   tempForm.dispatchEvent(new Event("onsubmit"));//chrome  
  
   //必须手动的触发,否则只能看到页面刷新而没有打开新窗口  
   tempForm.submit();     
  
   document.body.removeChild(tempForm);     
  
}     
function openWindow(name)       
{       
   	window.open('about:blank',name,'height=400, width=400, top=0, left=0, toolbar=yes, menubar=yes, scrollbars=yes, resizable=yes,location=yes, status=yes');          
}    


  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值