萬盛學電腦網

 萬盛學電腦網 >> 腳本專題 >> javascript >> js使用post 方式打開新窗口

js使用post 方式打開新窗口

  這篇文章主要介紹了js使用post 方式打開新窗口的相關資料,需要的朋友可以參考下

  js中一般新打開窗口很簡單直接window.open(url);就可以了,

  但是由於我希望傳遞參數到服務端,而且參數看起來很長一串,而且get方式的提交參數長度是有限制的,因此我有以下需求:

  1,js中實現post提交

  2,返回的頁面在新窗口顯示

  首先我是這麼做的:

  代碼如下:

  $.ajax({

  type: "POST",

  url: '${contextPath}/analyse/detail.do',

  data: {carNum :carNum,ids:refIds},

  success: function(str_response) { var obj = window.open("about:blank");

  obj.document.write(str_response);

  }

  });

  通過jQuery ajax提交,返回的數據寫在新的頁面中,但是由於浏覽器的會攔截自動彈出的窗口,這樣還需用戶自己解除攔截,用戶體驗很差,

  然後我又通過模擬form表單的提交來實現

  代碼如下:

  function post(URL, PARAMS) { var temp_form = document.createElement("form");

  temp_form .action = URL;

  temp_form .target = "_blank";

  temp_form .method = "post";

  temp_form .style.display = "none"; for (var x in PARAMS) { var opt = document.createElement("textarea");

  opt.name = x;

  opt.value = PARAMS[x];

  temp_form .appendChild(opt);

  }

  document.body.appendChild(temp);

  temp_form .submit();

  }

  注意:如需新打開窗口 form 的target屬性要設置為'_blank'

 

  然後請求post('${contextPath}/analyse/detail.do',{carNum :carNum,ids:refIds});就可以了

 
copyright © 萬盛學電腦網 all rights reserved