showModalDialog Post 로 파람넘기기?
겟방식은 잘 넘어 값니다..
그런데 포스트 방식은 어떻게 넘기나요?
document.forms[0].target="원래는 여기다 윈도 이름 주잖아요..";
근데 모달에선 어떻게 해야되는지..
오브젝트 생성해서 부모창 제어 하는건 하겠는데..
모달창 최초 열릴때 request.getParameter(); 해서 가져올 값이 있어서요..
아..겟은 말구요...온리 포스트.
====================================
showModalDialog Post 로 파람넘기기?
showModalDialog는 Post방식으로 열수가 없습니다...
대신에 dialogArguments를 쓰실 수 있죠.
showModalDialog(URL, dialogArguments, properties)
이런 형식으로 프로토 타입을 정할 수 있죠.
즉... window.showModalDialog("dailogWindow.html", "hello...", "dialogWidth:300px; dialogHeight:200px");
이런 형식으로 호출 할 수있습니다...
그러면 dialogWindow.html이라는 오픈된 창에서...
window.dailogArguments를 참조하면 "hello..."란 문자열을 얻을 수 있는 거죠...
그러면 보내고 싶은 값들이 여러개라면?
배열로 보내면 됩니다....
window.showModalDialog("dailogWindow.html", ["hello", "world"]], "dialogWidth:300px;
dialogHeight:200px");
이런 형식으로 오픈하고... 오픈된 창에서는
var arr = window.dailogArguments;
var hello = arr[0];
var world = arr[1];
이런 형식으로 참조하면 됩니다...
즉... 님은 오픈하시려고 할때 dialogArguments를 배열로 만들어서 여러개로 보내면...
서버쪽에 값을 보내지 않아도 자바스크립트 상에서 파라미터를 보낼 수 있는 거죠...
모달창에서는 부모 객체나 변수를 참조하는 것이 안되더라고요...
즉... 이런 형식으로 아규먼트로 넘겨주면 쉽게 해결 될 수 있으니 참고하세용...
=================================================
간단 창띄우기(showModalDialog) - msdn lib
=================================================
<html>
<head>
<script language="jscript">
var gobjXDocument = null;
function Initialize()
{
// Save a reference to the XDocument object.
if (typeof window.dialogArguments == "object")
gobjXDocument = window.dialogArguments;
}
</script>
<title>A Simple Custom Dialog Box</title>
</head>
<body style="BACKGROUND-COLOR: window" onLoad="Initialize()">
<strong>Click one of the following buttons:</strong>
<br/>
<br/>
<div id="divButtons" tyle="align:center">
<input id="btnShowAlert" style="WIDTH: 106px; HEIGHT: 24px"
onclick='gobjXDocument.UI.Alert(gobjXDocument.DOM.xml);'
type="button" size="21" value="Show Alert"></input>
<input id="btnCancel" style="WIDTH: 106px; HEIGHT: 24px"
onclick="window.close();" type="button" size="21"
value="Cancel"></input>
</div>
</body>
</html>
====================================================
var strSQL;
strSQL = "INSERT INTO Gegevens(Naam,Adres,Woonplaats) VALUES('" +
XDocument.DOM.selectSingleNode("//my:txtName").text + "','" + XDocument.DOM.selectSingleNode
("//my:txtAddress").text + "','" + XDocument.DOM.selectSingleNode("//my:txtCity").text + "')";
XDocument.UI.Alert(strSQL);
====================================================
JavaScript로 Modal/Modeless 팝업창 띄우기
====================================================
>>>> 호출하는 페이지
ReturnValue = window.showModalDialog( "URL" [, arguments [, "features"]])
ReturnValue = window.showModelessDialog( "URL" [, arguments [, "features"]])
features)
center: yes | no | 1 | 0 | on | off
dialogHeight: Length/units
dialogLeft: Integer
dialogTop: Integer
dialogWidth: Length/units
edge: raised | sunken
help: yes | no | 1 | 0 | on | off
resizable: yes | no | 1 | 0 | on | off
status: yes | no | 1 | 0 | on | off
sample code)
var args = new Array();
args["msg"] = "작업을 완료했습니다.";
args["winTitle"] = "알림";
ReturnValue =
window.showModal(
"http://www.neoapi.com",
args,
"dialogWidth:200px; dialogHeight:100px; edge:sunken; center:yes; resizable:no; status:no;
help:no; scroll:no;");
return ReturnValue;
>>> 호출되는 페이지
호출되는 페이지는 HTML이라도 상관없다.
javascript로 client가 보내준 내용을 알 수 있다.
위 client가 보내온 내용은 아래와 같이 받을 수 있다.
var msg = window.dialogArguments["msg"];
var title = window.dialogArguments["winTitle"];
또한 브라우저가 닫힐 때, 리턴값을 돌려줄 수 있는데,
아래와 같이 하면 된다.
window.returnValue = true;
window.close();
리턴값은 꼭 boolean이어야 하는 것은 아니다.
>>> 주의할 사항
일반적으로 뭔가를 클릭했을 때, 팝업창을 표시하게 되는데
아래와 같이 <a> tag의 href에서 사용하지 말고
onClick event에서 하도록 한다.
<a href="#none" onclick="callPopupWindow()">(확인)</a>
====================================================
window.showModalDialog Arguments
====================================================
[ 부모창의 스크립트 일부(함수) ]
function msgDialog(){
var args = new Array();
args["msg"] = msg;
var msgDialog = window.showModalDialog("[주소]", args, "[속성]");
return msgDialog;
}
/*
설명 : 부모창에서 인자를 배열로 만들어 창이름에 넣는 곳에 넣는다.
*/
[ 자식창의 일부 ]
var msg = window.dialogArguments["msg"];
// 부모창에서 넘긴 값을 dialogArguments로 받아서 사용
===============================================