【问题标题】:How to use jQuery query string?如何使用 jQuery 查询字符串?
【发布时间】:2013-02-26 11:07:45
【问题描述】:

好的。基本上,我正在为想要获取玩家姓名和头像的自定义加载屏幕的游戏服务器所有者开发一个 API,但不使用 PHP,仅使用 JavaScript、AJAX、HTML 等。

这是我目前想出的:

<!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= 值替换为游戏提供的值。例如,如果您通过http://server.com/loading.html?id=76561198017389807访问页面,它将调用api.sidewaykill.com/steam/name.php?id=76561198017389807和图像api.sidewaykill.com/steam/avatar.php?id=76561198017389807。我将如何使用更多的 jQuery 来做到这一点?

【问题讨论】:

  • 问题不是很清楚。你想让 jQuery 做什么?您是在浏览器中加载此页面,还是在某种自定义框架中加载?喜欢 QT/MFC/AnyLib HTML 视图?请详细说明一下。
  • 我正在使用游戏将其加载到页面中。游戏在加入服务器(Garry's Mod)时加载此页面,并为页面提供 SteamID64,这需要 PHP 解析。我正在设法做到这一点,而无需创建者使用任何服务器端脚本。
  • 你为什么要使用这么旧的 jQuery 版本,如果你从头开始你可以很容易地使用更高版本,因为你没有代码可以查看?
  • 是的,我会使用不同版本的jQuery,我什至不知道我为什么使用这个版本。

标签: javascript jquery ajax xml-parsing steam


【解决方案1】:

没有 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)

【讨论】:

    【解决方案2】:

    不完全是 jQuery 答案,而是纯 Javascript:

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

    将从 URL 的 GET 部分为您提供 id 的值,现在您可以将其插入 HTML 文档和 Ajax URL 的部分。

    使用 jQuery 你可以试试这个:http://www.jquery4u.com/snippets/url-parameters-jquery/

    你的意思是这样插入值?

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

    【讨论】:

    • 我在问如何插入,但还是谢谢。 - 编辑:我意识到你给了我 var,但是我已经很久没有做任何 JavaScript 了,那么我如何将它添加到我的 jQuery 代码中,并使用代码获取图像?
    • 好吧,如果你给你的图片一个 id 属性作为 html 标签,你可以使用我在上面编辑过的帖子中的代码。这两行都会进入你的文档加载脚本,运行一次页面已完全加载。
    【解决方案3】:

    $.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);
    

    【讨论】:

    猜你喜欢
    • 2011-10-31
    • 2011-01-04
    • 2017-07-11
    • 1970-01-01
    • 2011-01-11
    • 1970-01-01
    • 1970-01-01
    • 2011-03-12
    • 2013-06-30
    相关资源
    最近更新 更多