2012-04-23 18 views
2

私はそのようなリンクを持っています。それはInstagram APIから得ています。javascriptでロードするラベル値を取得する方法

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

コードビハインドからこのリンクを取得するにはどうすればよいですか? 私はjsとそれを取ることができますが、私はラベルに割り当てられた後にそれを得ることができません。つまり、

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

このjs関数はbody onloadイベントにあります。コードビハインドからこのinnerText値に到達するにはどうすればよいですか?

+3

'#...'部分は決してサーバに送られません。 –

+0

私はそれを知っていますが、javascriptで取得してラベルに割り当てることができます。しかし、コードビハインドからラベル値を取得することはできません。 – Kadir

+0

ああ、あなたの質問のタイトルが私を混乱させました...「innerText」はFirefoxでは利用できません。多分問題です。または、IDが 'lblAccessToken'の要素が存在しません。または、この要素はコンテンツを受け付けません。それ以上の情報がなければ、答えることは不可能です。 –

答えて

1

ASP.NET 4.0とjQueryを使用している場合は、かなり簡単です。それ以外の場合は、あなたはmangled idを処理しなければならず、DOMReadyを自分で処理しなければならないかもしれません。この

マークアップ

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

はJavaScript

<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右側の値をしたいお試しください?私は自分自身は、通常、これらのものの一つ

  1. は、jQueryのAjaxのメソッドにハッシュ値を渡しますし、そこに格納Page_Load .I上のハッシュ値を取得する方法を考え出したていません。
  2. 今をPage_Loadでのグラブのハッシュ値とクエリ文字列

に変換した後、同じページにリダイレクトするJavaScript

<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> 

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

のようにそれをつかむことに注意してくださいサーバーへのもう1回の往復を要し、それほど効率的ではありません。しかし、これは私がしていることです。

+0

jQueryなしで上記を行うには、 '$(document).ready(...)'を 'window.onload = function(){...}'に置き換えてください。と '$("#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

関連する問題