2

私はそのようなリンクを持っています。InstagramのAPIから取得しています。

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

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

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

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

4

1 に答える 1

1

ASP.NET 4.0とjQueryを使用している場合は、かなり簡単です。それ以外の場合は、マングルされた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右の値が欲しいですか?ハッシュ値を取得する方法を自分で理解していませんPage_Load。通常、これらのいずれかを実行します。

  1. ハッシュ値をjQueryajaxメソッドに渡し、そこに保存します。
  2. ハッシュ値を取得し、クエリ文字列に変換した後、同じページにリダイレクトします

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>

Page_Loadで、次のように取得します

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

サーバーへの往復がもう1回かかるため、あまり効率的ではないことに注意してください。しかし、これは私がしていることです。

于 2012-04-23T00:44:04.450 に答える