如果您使用的是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
。我的哈希值通常做的這些事情
- 一個傳遞散列值到jQuery的AJAX方法,並將其存儲在那裏。
- 抓住散列值,並重定向到同一頁面在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"];
請注意,它需要再往返一次服務器,所以效率不高。但這就是我所做的。
'#...'部分永遠不會發送到服務器。 – 2012-04-23 00:27:53
我知道這一點,但我們可以通過javascript獲得它並分配給標籤。但是我無法從代碼隱藏中獲得標籤值。 – Kadir 2012-04-23 00:29:37
啊,那麼你的問題標題會讓我困惑......''innerText'在Firefox中不可用,也許這就是問題所在。或者ID爲'lblAccessToken'的元素不存在。或者這個元素不接受任何內容。沒有更多的信息,這是不可能回答的。 – 2012-04-23 00:30:33