2013-03-11 65 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