반응형



아파트 단지에 길고양이 한마리가 자주눈에 띈다.
일전에 먹을것을 주기도 하고 볼때마다 인사를 했더니 나를 알아보는 것인지는 모르겠지만
출근길에 놀이터에 드러누워있길래 아는척을 하는 나에게 아양을 부리고 내손바닥을 핥기도 하네.
퇴근길에도 놀이터에 있는 녀석을 아는척했더니 나를 살짝 깨물기까지 한다^^
 
퇴근길에 소세지라도 하나 챙겨가야 할까보다. 
반응형
var globalVar = "0";
a();
b();
function a(){
            $.ajax({
                type: "POST",
                url: "a.aspx/FunctionName",
                data: "{'_work_code':'" + _work_code + "','_regdate':'" + _reg_date + "'}", 
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function (msg) {
                    var _rst = msg.d;
                    globalVar = "2";
                }
            });
}
function b(){
            globalVar = "1";
}


 
위와 같이 선언된 jQuery함수에서 자바스크릅트의 전역변수를 선언하면
Post로값을 넘겨서인건지(정확히는 모름)  전달에 지연된다.
a()가 먼저 호출되었음에도 불구하고 globalVar의 값은 2가 아닌 1로 정의 되버린다.
이를 막기위해 한가지를 추가해줘야한다.

 $.ajax({
                type: "POST",
                url: "a.aspx/FunctionName",
                async:false, 
                data: "{'_work_code':'" + _work_code + "','_regdate':'" + _reg_date + "'}", 
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function (msg) {
                    var _rst = msg.d;
                    globalVar = "2";
                }
            });

강조된 부분을 추가해주면 자바스크립트의 전역변수가 제대로 전달된다. 
반응형
jQuery를 이용하여 동일한 페이지(a.aspx/ a.aspx.cs)상의 서버함수에 접근하는 방법이다.
            $.ajax({
                type: "POST",
                url: "a.aspx/FunctionName",
                data: "{'_work_code':'" + _work_code + "','_regdate':'" + _reg_date + "'}", 
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function (msg) {
                    var _rst = msg.d;
                }
            });
//---------------------------------------------
 Post방식으로 서버함수에 접근하는 방법이다.
1) url: "a.aspx/FunctionName",
 이부분에서 a.aspx는 접근해야할 함수가 존재하는 페이지(스크립트가 선언된 페이지와 동일하다.)
/뒤의 FunctioinName는 서버스크립트에 존재하는 함수명이다.
2) data: 부분은 FunctionName에 전달해야할 파라미터들이다.
 '_work_code':'" + _work_code + "' 에서 앞부분이 서버에 선언된 파라미터명이고 반드시 동일한 이름으로 작성되어야하며
서버함수의 파라미터 갯수와 정확히 일치해야한다. 뒷부분은 파라미터에 전달할 클라이언트의 값이다.
3)contentType: , dataType: 이것들은 선언해줘야할 타입들인데 그다지 손댈일이 없으므로 패스
4) success: function (msg) {
서버함수로 전달된 값이 계산을 통해서 반환된다면 msg로 값이 넘어온다.
msg.d로 값을 확인할 수 있으며 배열로 넘어오는 경우에는 msg.d[0], msg.d[1]과 같은 방식으로 확인하면 된다. 
반응형
1.먼저 [using System.Collections.Specialized;]이 선언돼있어야 한다.
2. QueryString을 처리할 함수를 만든다.
        public NameValueCollection getQueryStringPrms(string url)
        {
            string keyValue = string.Empty;
            NameValueCollection collection = new NameValueCollection();
            string[] querystring = url.Split('&');
            if (querystring != null && querystring.Count() > 0)
            {
                for (int i = 0; i < querystring.Count(); i++)
                {
                    string[] pair = querystring[i].Split('=');
                    collection.Add(pair[0].Trim('?'), pair[1]);
                }
            }
            return collection;
        } 
3. [WebMethod]에서 getQueryStringPrms을 호출한다.
        NameValueCollection collection = comm.getQueryStringPrms(HttpContext.Current.Request.UrlReferrer.Query);
        
         string temp = HttpContext.Current.Server.UrlDecode(collection["code"]);
 
반응형
먼저 부모창에 function test(){}이라는 함수가 있다고 가정한다.

1)팝업창일경우
opener.test();
2)iframe일경우 
parent.test(); 
와 같이 호출하면 된다. (무지쉽지?) 
3) 부모창에서 iframe내 함수접근
   var ifr = document.getElementById('iframeID');
    ifr.contentWindow.function_name();
부모창에서 'iframeID'이라는 iFrame에 지정된 페이지의 function_name()함수에 접근하는 방법이다.

4) <a href='www.url.com' target='_parent'>link</a>으로 지정해도 됨. 물론 자바스크립트를 제어하는 것은 아니라서
     parent.location.href='www.url.com';과 동일한 효과만 볼수 있음. 페이지 이동에 국한하여 사용할 수 있는 태그이다.
     기초적이고 간단한 것인데 종종 잊어먹곤 하니 유의할 것.


+ Recent posts