以post方式傳參方式開啟新視窗

lingxyd_0發表於2012-04-01

以post方式傳參方式開啟新視窗

 

在使用winow.open開啟新視窗時,因為是get方式傳參,經常因為引數過長產生一些錯誤,考慮改用post傳參來避免這一問題。
要改為post傳參方式需要使用一個隱藏form來提交引數,但使用form的target新建視窗又不能自定義window樣式。
google了下,可以在提交form的時候使用window.open新建一個空視窗,並將form的target設定為window的name,就能使form的新建的視窗內提交了。


function openPostWindow(url, args, name){
  var tempForm = document.createElement_x("form");
  tempForm.id="tempForm";
  tempForm.method="post";
  tempForm.action=url;
  tempForm.target=name;
  tempForm.style.display="none";
//可傳入多個引數
  for(var i=0; i<args.length; i++){
    var hideInput = document.createElement_x("input");
    hideInput.type="hidden";
    hideInput.name=args[i][0];
    hideInput.value=args[i][1];
    tempForm.appendChild(hideInput); 
  }
  tempForm.attachEvent("onsubmit",function(){ window.open("about:blank",name,"directories=no,location=no,menubar=no,resizable=yes,scrollbars=yes,status=no,toolbar=no"); });
  document.body.appendChild(tempForm);
  tempForm.fireEvent("onsubmit");
  tempForm.submit();
  document.body.removeChild(tempForm);
}

 

相關文章