마가린 (http://mar.gar.in) 개발자입니다. 요즘 프리렌서로 활동중이고, 가끔 아이폰 앱을 개발도 한답니다.


sample.html


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<title> sample </title>

<meta charset="utf-8" />

<script type="text/javascript" src="jquery-1.9.0.min.js"></script>

<script type="text/javascript">

<!--

var FH = 

{

obj : 

{

data : {},

handle : {}

},

init : function()

{

FH.objInit();

FH.objSetEvent();

},

objInit : function()

{

FH.obj.handle.samplePopup = $("#samplePopup");

},

objSetEvent : function()

{

FH.obj.handle.samplePopup.click(function(){

var popupUrl = "samplepopup.html?jsCallBack=FH.setPopupData";

FH.popup (popupUrl,"samplePopup",800,600);

});

},

setPopupData : function()

{

var popwin = arguments[0];

var data = arguments[1];

alert(data.param1);

alert(data.param2);

popwin.close();

},

popup : function(popupUrl,popupName,w,h)

{

var leftPosition = $(window).width()/2 + window.screenLeft ;

var topPosition = window.screenTop;

var option = 'height='+h+',width='+w+',top='+topPosition+',left='+leftPosition+',scrollbars=yes';

window.open(popupUrl, popupName, option);

}

};

$(document).ready(function(){

FH.init();

});

-->

</script>

</head>


<body>

<input type="button" name="samplePopup" id="samplePopup" value="samplePopup"/>

</body>

</html>


samplepopup.html


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<title> sample </title>

<meta charset="utf-8" />

<script type="text/javascript" src="jquery-1.9.0.min.js"></script>

<script type="text/javascript">

<!--

var FH = 

{

obj : 

{

data : {},

handle : {}

},

init : function()

{

FH.objInit();

FH.objSetEvent();

},

objInit : function()

{

FH.obj.handle.sendData = $("#sendData");

},

objSetEvent : function()

{

FH.obj.handle.sendData.click(function(){

var callBack = eval("opener.window." + FH.getParameterByName("jsCallBack"));

var delData = {

param1 : "PARAM1",

param2 : "PARAM2"

};

callBack.apply(this,[self.window,delData]);

});

},

getParameterByName : function( name )

{

 name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");

 var regexS = "[\\?&]"+name+"=([^&#]*)";

 var regex = new RegExp( regexS );

 var results = regex.exec( window.location.href );

 

 if( results == null )

return "";

 else

return decodeURIComponent(results[1].replace(/\+/g, " "));

}

};

$(document).ready(function(){

FH.init();

});

-->

</script>

</head>


<body>

<input type="button" name="sendData" id="sendData" value="sendData"/>

</body>

</html>


sample.zip






웹페이지 구성중 팝업으로 데이터를 전달 받을 일이 생기는데 공통적으로 사용하는 팝업에서 데이터를 전달 받기위해

사용하는 팝업 처리 코드입니다.


팝업 창의 종료 제어권을 호출하는 쪽에 전달하는 것과 callBack받을 함수의 이름을 전달하여 데이터를 전달 받는 방법입니다.

팝업창의 데이터 전달을 모듈화 시킬려고 시도해본 코드입니다.


더 좋은 방법이 있겠지만 이정도 선에서 사용하고 있습니다.





-- 오래간만에 블로그에 글을 써보고 싶어서 그냥 나름 팁이라 생각된 부분을 정리해 봤습니다.





신고
Posted by 소두마빈


카테고리

분류 전체보기 (59)
AJAX (2)
JAVASCRIPT (6)
파이어폭스 (1)
기타 (22)
mar.gar.in (1)

달력

«   2017/11   »
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30    

티스토리 툴바