2013-03-11 111 views
1

好的。基本上我正在爲遊戲服務器所有者開發一個API,他們想要一個自定義加載屏幕來獲取玩家的姓名和頭像,但不使用PHP,只使用JavaScript,AJAX,HTML等。如何使用jQuery查詢字符串?

這就是我想出來的到目前爲止:

<!DOCTYPE html> 
<html> 
<head><title></title> 
<script src="//static.sidewaykill.com/js/jQuery/1.5.2.min.js"></script> 
<script src="//static.sidewaykill.com/js/jQuery/ExtDomain.js"></script> 
</head> 
<body> 
<script type="text/javascript"> 
(function($) { 
    $.QueryString = (function(a) { 
     if (a == "") return {}; 
     var b = {}; 
     for (var i = 0; i < a.length; ++i) 
     { 
      var p=a[i].split('='); 
      if (p.length != 2) continue; 
      b[p[0]] = decodeURIComponent(p[1].replace(/\+/g, " ")); 
     } 
     return b; 
    })(window.location.search.substr(1).split('&')) 
})(jQuery); 

$.get('http://api.sidewaykill.com/steam/name.php?id=76561198017389807') 
.success(function(data) { 
    $('#steamname').html(data); 
}); 
</script> 
Welcome <span id="steamname"></span>.<br /><br /> 
<img src="http://api.sidewaykill.com/steam/avatar.php?id=76561198017389807" alt="Player Avatar" /> 
</body> 
</html> 

我想要做的就是弄清楚如何用遊戲提供的ID =值來替換這些ID =值。例如,如果您通過http://server.com/loading.html?id=76561198017389807訪問該頁面,則會調用api.sidewaykill.com/steam/name.php?id=76561198017389807和圖片api.sidewaykill.com/steam/avatar.php?id=76561198017389807。我如何用更多的jQuery來做到這一點?

+0

的問題還不是很清楚。你想要jQuery做什麼?您是在瀏覽器中加載此頁面還是某種自定義框架?像QT/MFC/AnyLib HTML視圖一樣?請詳細說明一下。 – 2013-03-11 10:09:33

+0

我正在使用遊戲在頁面中加載此內容。遊戲在加入服務器時加載了這個頁面(Garry's Mod),並且它給了頁面SteamID64,這需要PHP解析。我正在設法在沒有創建者使用任何服務器腳本的情況下執行此操作。 – Skilledway 2013-03-11 10:17:35

+0

爲什麼你使用這樣一箇舊版本的jQuery,如果你從頭開始你可以輕鬆地使用更高版本,因爲你沒有代碼來檢查? – GGJ 2013-03-11 10:19:37

回答

0

不完全是一個jQuery的答案,但純JavaScript:

var idvalue = decodeURI((RegExp('id=' + '(.+?)(&|$)').exec(location.search)||[,null])[1]); 

會給你的id值從URL的GET部分,現在你可以將它插入你的HTML文檔和Ajax的部分網址。

使用jQuery你可以試試這個:http://www.jquery4u.com/snippets/url-parameters-jquery/

你的意思是這樣的堵塞值?

$('#imgid').src = 'http://api.sidewaykill.com/steam/avatar.php?id=' + idvalue; 
+0

我在問如何插入,但無論如何感謝。 - 編輯:我意識到你給了我的變種,但它已經很長時間了,因爲我已經做了任何JavaScript,所以我如何將它添加到我的jQuery代碼,並使用代碼獲取圖像? – Skilledway 2013-03-11 10:11:54

+0

好吧,如果您爲圖片提供了html標記的id屬性,那麼您可以使用我在上面編輯過的帖子中放置的代碼。這些行的兩者都會進入您的文檔加載腳本,以便在頁面完全加載後運行。 – Husman 2013-03-11 10:24:08

0

沒有PHP使得顯著困難,否則它只是一個簡單的:

$.get('http://api.sidewaykill.com/steam/name.php?id=<?= $_GET['id'] ?>') 

但是你可以使用此功能:

Parse query string in JavaScript

,並呼籲:

var id = getQueryVariable('id'); 
$.get('http://api.sidewaykill.com/steam/name.php?id='+id) 
0

$ .QueryString.id將使用您包含的$ .QueryString來保存您的ID的值。

更改圖片的HTML:你想

<img id="avatarimage" src="http://api.sidewaykill.com/steam/avatar.php?id=placeholderimageid" alt="Player Avatar" /> 

和JavaScript是

$.get('http://api.sidewaykill.com/steam/name.php?id=' + $.QueryString.id) 
    .success(function(data) { 
    $('#steamname').html(data); 
}); 

$('#avatarimage').attr('src', 'http://api.sidewaykill.com/steam/avatar.php?id=' + $.QueryString.id); 
+0

不幸的是,你的代碼的圖像部分不會輸出任何圖像。 - 您可以在http://api.sidewaykill.com/steam/example.html?id=76561198017389807看到我使用的代碼 – Skilledway 2013-03-12 04:56:51