window.open打开窗口并用post方式提交

在项目中打开新窗口的时候通过

window.open(CONTEXT_PATH + '/base/entryAddDataPageEditor.do?listCode=' + relaCode, '_blank', 'height=600, width=900, toolbar=no, menubar=no, scrollbars=no, resizable=no,location=no,status=no')

这样的方式打开新的一个窗口

这种方式是get的传参方式,如果参数带中文可能会遇到中文乱码的问题。而且有的时候不想参数在浏览器的地址上显示出来。想通过post方式来实现这样的一样功能

在网上找到了资料

解决方法如下

            function openWindow(name)  {  
                 var iWidth=1100; //弹出窗口的宽度;
                 var iHeight=550; //弹出窗口的高度;
                 var iTop = (window.screen.availHeight-30-iHeight)/2; //获得窗口的垂直位置;
                 var iLeft = (window.screen.availWidth-10-iWidth)/2; //获得窗口的水平位置;        
                 window.open('about:blank',name,"height="+iHeight+", width="+iWidth+", top="+iTop+", left="+iLeft+",toolbar=no, menubar=no,  scrollbars=yes,resizable=yes,location=no, status=no");  
            }  

            function openPostWindow(url, data, name){
                var tempForm = document.createElement("form");    
                tempForm.id="tempForm1";    
                tempForm.method="post";    
                tempForm.action=url;    
                tempForm.target=name;    

                var hideInput = document.createElement("input");    
                hideInput.type="hidden";    
                hideInput.name= "source";  
                hideInput.value= data; 
                tempForm.appendChild(hideInput);
               /*
               for(key in data){
                  var hideInput = document.createElement("input");    
                  hideInput.type="hidden";    
                 hideInput.name= 'model.'+key;  
                 hideInput.value= data[key];  
                 tempForm.appendChild(hideInput);
               }*/
                     
                //增加提交监听 处理浏览器的兼容性
                if (window.attachEvent) { 
                    tempForm.attachEvent("onsubmit",function(){ openWindow(name); });  
                } else if (window.addEventListener) { 
                    tempForm.addEventListener("onsubmit",function(){ openWindow(name); });  
                }
                document.body.appendChild(tempForm);    
                //触发监听 处理浏览器的兼容性
                if(tempForm.fireEvent){
                    tempForm.fireEvent("onsubmit");
                }else{
                    var evt = document.createEvent('HTMLEvents');   
                    evt.initEvent('onsubmit', true, true);   
                    tempForm.dispatchEvent(evt);   
                }
                tempForm.submit();  
                document.body.removeChild(tempForm);  
            }        

//在其他的地方引用
/*openPostWindow(CONTEXT_PATH + '/base/entryWherePageEditor.do',{
				 	'ZF1':1,
				 	'listCode':'tzfz'
				 },'mywin')
*/
openPostWindow(CONTEXT_PATH +"/base/entryPreviewPageEditor.do",viewport.ue.getContent(),'mywin')

 

你可能感兴趣的:(javascript)