2012-04-23 4 views
2

나는 그런 링크가 함께로드 레이블 값을 얻을 수 있습니다. 그것은 인스 타 그램 API에서 가져옵니다.어떻게 자바 스크립트

http://localhost:60785/access_token.aspx/#access_token=43667613.4a1ee8c.791949d8f78b472d8136fcdaa706875b 

코드 비하인드에서이 링크를 어떻게 얻을 수 있습니까? js로 가져갈 수는 있지만 레이블에 지정하면 가져올 수 없습니다. 내 말은 :

<script> 
    function getURL(){ 
     document.getElementById('lblAccessToken').innerText = location.href; 
    } 
</script> 

이 js 기능은 본문 onload 이벤트에 있습니다. 코드 숨김에서이 ​​innerText 값에 어떻게 도달합니까?

+3

은'# ...'부분은 서버로 전송되지 않습니다. –

+0

알지만, 자바 스크립트로 가져 와서 레이블에 지정할 수 있습니다. 하지만 코드 숨김에서 레이블 값을 가져올 수는 없습니다. – Kadir

+0

아, 그러면 질문 제목이 혼란 스럽습니다 ... 'innerText'는 Firefox에서 사용할 수 없습니다. 아마도 그게 문제입니다. 또는 ID가 'lblAccessToken'인 요소가 존재하지 않습니다. 또는이 요소는 어떠한 내용도 허용하지 않습니다. 더 많은 정보가 없으면 대답 할 수 없습니다. –

답변

1

당신이 ASP.NET 4.0 및 jQuery를 사용하는 경우는 매우 쉽습니다. 그렇지 않으면 맹 글링 된 ID를 처리해야하고 DOMReady를 직접 처리해야 할 수도 있습니다. 당신은 Page_Load 오른쪽에있는 값을 원하는이

마크 업을

<asp:Label ID="lblAccessToken" runat="server" ClientIDMode="Static"></asp:Label> 

자바 스크립트

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> 
<script> 
    $(document).ready(function(){ 
     var myToken = GetHashParameterByName("access_token"); 
     $("#lblAccessToken").html(myToken); 
    }); 

    function GetHashParameterByName(name) {  
     var match = RegExp('[#&]' + name + '=([^&]*)') 
       .exec(window.location.hash); 
     return match && decodeURIComponent(match[1].replace(/\+/g, ' '));  
    } 
</script> 

를 시도? 나 자신이 Page_Load .I에 해시 값을 가져올 수있는 방법을 생각하지 않은 보통 이런 일

  1. 중 하나가 jQuery를 아약스 방법에 대한 해시 값을 전달하고 거기에 저장 않습니다.
  2. 잡아 해시 값과는

    string token = Request.QueryString["access_token"]; 
    

    있습니다처럼 잡아,를 Page_Load 지금

    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> 
    <script> 
        $(document).ready(function(){ 
         var myToken = GetHashParameterByName("access_token") || ""; 
         if(my_token !=== ""){ 
          window.location = window.location.split("/#")[0] + "?access_token=" + myToken; 
         } 
        }); 
    
        function GetHashParameterByName(name) {  
         var match = RegExp('[#&]' + name + '=([^&]*)') 
           .exec(window.location.hash); 
         return match && decodeURIComponent(match[1].replace(/\+/g, ' '));  
        } 
    </script> 
    

    자바 스크립트

    쿼리 문자열

으로 변환 한 후 동일한 페이지로 리디렉션 서버로의 왕복 여행이 한 번 더 소요되므로 그리 효율적이지 않습니다. 그러나 이것이 내가하는 일입니다.

+0

jQuery를하지 않고 상기하려면 '대체 $ (문서) .ready (...)'창로드 = 함수() {...}'와 와'$ ("# lblAccessToken") .html (myToken); 'with'document.getElementById ('lblAccessToken'). innerHTML = myToken;'. – RobG

+1

:) 알아. DOMReady가 더 안전하다고 생각했습니다. 그게 다야. 나는 DOMReady를 사용하지 않는 것에 대해 더 염려했다. 그리고 나는 이것을 OP에서 던지지 않기로 결정했다. http://stackoverflow.com/a/1207005/17447 – naveen

+0

좋아, 나는 오히려 POJS를보고 OP가 자신의 선택 도서관에 적응 시키도록했다. – RobG