1.
아래와 같이 form 을 동적으로 생성해서 POST 방식으로 새 창에 전송하도록 코드를 작성했다.
window.open(url,name, option); var form = document.createElement("form"); var result = document.createElement("input"); form.appendChild(result); form.submit(); |
Chrome으로 확인하면서 개발 중이었는데, 크롬에서는 잘 작동하는 소스가 IE에서는 데이터가 넘어오지 않았다.
구글링 결과 appendChild가 정상 작동 안한다고 한다.
form 을 미리 생성해놓고 값만 넣어서 보내는 방식으로 변경해서 문제 해결.
<form name="resultHiddenForm" action="" method="post"> |
var win = window.open(url, name, option); |
chrome 과 IE 에서 모두 정상 작동한다.
출처 | http://blog.naver.com/lionlyloveil/220514942093
2.
java script에서 window.open명령어로 새 창을 띄울수 있다.
문제는 데이터 전송을 get방식으로 한다는것.
이것을 post방식으로 전송할 수 있는 방법이 있는데, 방법이 좀 복잡하다..
아래가 예시 코드이다.
-------------------------------------------------------------------------------------------
function sendPost(){
// 폼을 생성한다.
var form1 = document.createElement("form"); // 폼 생성
form1.setAttribute("method", "POST"); // 전송방식
form1.setAttribute("action", "URL"); // 주소
form1.setAttribute("target", "targetName"); // 타겟..(중요)
document.body.appendChild(form1);
// 입력창을 hidden타입으로 생성
var formInput1 = document.createElement("input"); // 입력창 생성
formInput1.setAttribute("type", "hidden"); // 타입
formInput1.setAttribute("name", "payerJumin"); // name 속성
formInput1.setAttribute("id", "payerJumin"); // id 속성
formInput1.setAttribute("value", payerJumin); // 값
form1.appendChild(formInput1); // 추가한당
window.open('', "targetName"); //url없이 타겟만 지정한 후 폼 전송
form1.submit(); // 새 창을 띄운 후에 폼을 전송
}
-------------------------------------------------------------------------------------------
스크립트내에서 폼을 생성하고, 값을 입력받아서 전송했다.
그래서 좀 복잡하다..;
그리고 form을 미리 생성해서 값을 입력받은 후 전송하면 되지 않느냐고 물을수도 있는데..
안해봤다. (아마 폼을 똑같이 생성해두고 타겟과 전송방식등을 지정해준 다음, window.open을 이용해서 전송하면 될것 같다.)
어제 일이 너무 바빠서, 이걸로 급하게 코딩하고, 확인해볼 시간이 없었다;;;;
어쨋든 이걸 응용하면, 데이터 전송시 스크립트단에서 이러한 가상의 폼(? / 묵시적인건가..)을 생성하여 데이터를 전송할 수 있다는걸 알수 있다.
출처 | http://blog.naver.com/swi0110/220416992381
'Web > Javascript' 카테고리의 다른 글
DOM API 정의 (0) | 2016.03.08 |
---|---|
JSON & XML 정의 (0) | 2016.03.08 |
[JavaScript] 문자 인코딩 함수(UTF-8) : escape(), encodeURI(), encodeURIComponent() (0) | 2015.11.27 |
[JavaScript] 유니코드 or 아스키코드 문자나 숫자로 변환하기. (코드값 전환) (0) | 2015.11.27 |
웹,모바일 접속 기기 확인 (0) | 2015.09.24 |