2012-04-27 1 views
0

자바 스크립트에 클라이언트 전역 변수가 있습니다. 다른 페이지에 살고있는 서버 측에서이 전역 변수에 액세스해야합니다. 어떻게 내가 쿼리 문자열없이 이것을 얻을 수 있습니까? 세션 상태가 필요한 경우 어떻게 자바 스크립트에서 세션을 설정할 수 있습니까?서버 측에서 사용할 자바 스크립트에서 httpcontext 세션을 설정합니다.

편집을 할

확인 .. 여기 페이지 자체가 SharePoint 웹 페이지입니다 .. 전체 시나리오는, 내가 웹 파트 만 제어 할 수 있습니다. webpart 내에서 다른 페이지를 여는 window.open 버튼이 있습니다. 이제 기본 페이지에서 javascript 변수를 다른 페이지로 전달하고 코드 숨김에 액세스 할 수있게하려면 어떻게해야합니까?

답변

0

몇 가지 방법을 생각해 볼 수는 있지만 좋습니다. 기본 단계는 다음과 같습니다

  1. 를 사용하여 자바 스크립트를 사용하면 (문자열을 쿼리하지 않음) 인수로 전달할 전역 변수 혼자 모달 대화 상자를 팝업 할 수 있습니다.

  2. 팝업 페이지에서 JavaScript를 사용하여 전역 변수를 숨김 필드로 설정 한 다음 자체 다시 게시를 시작하십시오.

  3. 코드 뒤에 숨김 필드에서 전역 변수를 검색하여 세션 데이터에 저장하십시오.

  4. 이제 세션 변수에서 전역 변수를 사용할 수 있습니다.

참고 : jQuery 1.7.1 이상이 필요합니다.

1 단계 코드 :

이것은 사용자의 팝업 링크 또는 버튼입니다.

<a id="popAspxWeb" href="#" onclick="javascript:PopPage('ModalPopup.aspx','galbal_variable_data');">Click to Popup</a> 

여기 팝업 창이 열리는 자바 스크립트 코드입니다.

<script type="text/javascript"> 
    function PopPage(page, data) { 
     var result = window.showModalDialog(
     page, // popup this page 
     data, // with this data 
     "dialogWidth:500px; dialogHeight:500px; resizable:no; status:no; center:yes"); 
    } 
</script> 

2 단계 코드 :

당신이 필요합니다. 첫 번째는 데이터를 저장하고 두 번째는 페이지 포스트 백을 플래그 지정합니다.

<script type="text/javascript"> 
    var data = ""; // global variable to store data from parent window. 

    $(document).ready(function() { //jQuery code to be executed when document is fully loaded. 
     args = window.dialogArguments; // obtain argument data and assign to global variable. 
     if ($("#postback").val().toString() == "false") { // if first visit to page 
      $("#hidData").val(data); // assign argument data from global variable to hidden field. 
      $("#postback").val("true"); // flag the form is posted back. 
      document.forms[0].submit(); // trigger form post. 
     } 
    }); 

    function ReturnAndClose() { // you can optionally return data back to the parent window. 
     window.close(); // this closes modal pop up. 
     window.returnValue = document.getElementById('return_data').value; // this returns a value to parent window. 
    } 

</script> 

3 단계 코드 : galbol 변수 데이터에 액세스 할 수

코드 behine

<input id="hidData" runat="server" type="hidden" /> 
<input id="postback" runat="server" type="hidden" value="false" /> 

여기에 자바 스크립트입니다.

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (Page.IsPostBack) 
    { 
     string data = this.hidData.Value; 
     this.Session["data"] = data; 
    } 
} 
-1

세션은 서버 측 데이터 저장소입니다. 쿠키를 사용해보십시오.

+0

는 또한 자바 스크립트에서 세션을 설정하는 방법이 게시물 http://stackoverflow.com/questions/1981673/persist-javascript-variables-across-pages –

+0

를 참조하십시오? 검색했지만 불가능한 것 같습니다 – user384080

+0

내가 전에 언급 한대로 자바 스크립트에서 세션을 설정할 수 없습니다. –

-2

아니요, 세션은 자바 스크립트로 직접 액세스 할 수 없습니다. 자바 스크립트가 클라이언트에서 실행되는 동안 서버에 저장됩니다. 는 그러나이 위의 링크에 링크 아래에 답을

Get Values from Previous Pages using different approaches

체크 포인트 (4)를 참조하시기 바랍니다 간접적으로 수행 할 수 있습니다.

가 나는 설명했다 : 크로스 페이지 포스트 백을 제어

가 당신의 편집에 따라 당신의 목적을 제공 희망의 PostBackURL 속성을 추가.

+0

황소 ** t 무엇이 황소입니다, 만약 당신이 투표에 대한 용기를 가지고 의견을 말하고 그 이유를 설명한다면? – Murtaza

+0

메이트 .. 당신의 솔루션은 서버 측에서 세션을 설정하고 있습니다 .. 내 질문을 캐 큐린으로 읽으십시오. 클라이언트 측에서 설정해야합니다! – user384080

+0

@ user384080 - 내 대답의 첫 번째 줄은 우리가 클라이언트 측에서 세션을 설정할 수 없다고 설명합니다. 답변을주의 깊게 읽은 다음 투표를하십시오. 당신이 찾을 수없고 모든 대답이 우리가 자바 스크립트에서 직접 세션에 액세스 할 수 없다고 말하는 경우 내 게시물이 정확하며 투표를 할 필요가 없습니다. – Murtaza

관련 문제