【问题标题】:get url parameter in jQuery not working在jQuery中获取url参数不起作用
【发布时间】:2013-04-05 21:41:21
【问题描述】:

这是页面的链接:

localhost/basket/newstext.html?url=http://www.basket-planet.com/ru/news/9246

当页面加载时,我试图提醒 url,所以我知道它在一个变量中。但事实并非如此。我发现了很多方法,但没有一个对我有用。我不明白为什么!!!我的html页面:

<head>
<script src="js/newstext.js"></script>
</head>
<body>
<div data-role="page" id="newstext">
</div>
</body>

js 脚本:

$('#newstext').bind('pageshow', function(event) {
var url = getUrlVars()["url"];
alert (url);
});

function getUrlVars() {
var vars = [], hash;
var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
for(var i = 0; i < hashes.length; i++)
{
    hash = hashes[i].split('=');
    vars.push(hash[0]);
    vars[hash[0]] = hash[1];
}
return vars;
}

我很想得到这个问题的答案...请帮忙!!!

更新:这是在第一页附加链接和文章的 js 脚本:

var serviceURL = "http://localhost/basket/services/";
var news;
$('#mainNews').bind('pageinit', function(event) {
getNews();
});

function getNews() {
$.getJSON(serviceURL + 'getmainnews.php', function(data) {
    $('#fnews li').remove();
    mainnews = data.items;
    $.each(mainnews, function(index, mnews) {
        $('#fnews').append('<li data-icon="false"><a style="white-space:normal;" href="newstext.html?url=http://www.basket-planet.com' + mnews.link + '">' + mnews.article + '</a></li>');
    });
    $('#fnews').listview('refresh');
});
}

【问题讨论】:

  • 您使用哪种服务器端语言构建查询字符串?它需要进行 URL 编码。
  • 我测试了代码,它运行良好。你包括 jQuery 吗?你用什么来触发pageshow事件?
  • 在上一页中,我从数据库中获取数据(文章链接和文章文本)。我对 PHP 文件进行 .getJSON 调用,并将结果附加到 jQuery Mobile 列表视图中。
  • @Gajotres 男人!!!你之前在哪里???我明天会试试你的答案,但从略读来看,它看起来像我需要的。

标签: javascript jquery html jquery-mobile


【解决方案1】:

我终于让它工作了。从看到页面转换是如何处理的,我应该记得当我阅读它时,jQuery Mobile 通过 AJAX 处理所有事情。解决方法是添加 $.mobile.ajaxEnabled = false;在第一页,这样页面就可以像普通网页一样处理。

如果有人可以添加此内容并告诉我在启用 AJAX 的情况下如何实现,那就太好了。但是经过很多努力,这是我找到的唯一解决方案。感谢大家的帮助!

【讨论】:

    【解决方案2】:

    我一周后遇到了这个问题,这就是我所做的 试试这个:

    function GetURLParameter(sParam)
    {
        var sPageURL = window.location.search.substring(1);
        var sURLVariables = sPageURL.split('&');
        for (var i = 0; i < sURLVariables.length; i++) 
        {
           var sParameterName = sURLVariables[i].split('=');
           if (sParameterName[0] == sParam) 
           {
            return sParameterName[1];
           }
        }
    }​
    

    并调用此函数:

     var tech = GetURLParameter('technology');
    

    感谢http://jquerybyexample.blogspot.com/2012/06/get-url-parameters-using-jquery.html

    试一试:)

    【讨论】:

    • 我看到了这个例子......我看到并尝试了几乎所有这些......没有工作。
    • 尝试在页面加载时调用 GetURLParameter 函数...或者直接在 $(document).ready() 或 $(window).load() 中调用它;
    【解决方案3】:

    如果您只想使用 Javascript 获取当前 URL,这是最简单的方法。

    <html>
      <body>
        <script>alert(window.location);</script>
      </body>
    </html>
    

    【讨论】:

    • OP 不是在寻找页面的 URL,而是一个带有键“url”的查询字符串值。
    猜你喜欢
    • 2023-03-08
    • 2015-02-12
    • 2016-09-21
    • 2017-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多