gpt4 book ai didi

javascript - 非 PushState 浏览器中的 JQuery Mobile 查询字符串问题

转载 作者:行者123 更新时间:2023-11-28 10:10:31 25 4
gpt4 key购买 nike

我正在尝试从 JQuery Mobile beta 3 中的查询字符串中提取变量 cid。

普通 URL 的示例是/category.php?cid=23

JQuery 移动 URL 示例/#/category.php?cid=23

由于 JQuery Mobile Beta 3 的 url 重写,我可以在大多数浏览器中使用以下函数正常从查询字符串中提取变量。但IE不支持新的浏览器历史记录功能。 https://developer.mozilla.org/en/DOM/Manipulating_the_browser_history

因此,我需要一种方法从上面看到的 JQuery Mobile Url 中提取查询字符串,而我通常在下面使用的以下函数无法正常工作。

function getQuerystring(key) {
var re=new RegExp('(?:\\?|&)'+key+'=(.*?)(?=&|$)','gi');
var r=[], m;
while ((m=re.exec(document.location.search)) != null) r.push(m[1]);
return r;
}

我正在寻找一个替代的正则表达式,它可以在不支持history.pushState的浏览器中找到散列变量或完全支持一些其他解决方案。我在文档中搜索了此问题的解决方案,但没有找到任何内容。我认为这将是 JQuery Mobile 团队已经考虑并解决的问题,我可能只是错过了一些非常明显的东西。预先感谢您的帮助。

最佳答案

工作演示(我认为)

相关链接:

JS

$('#page2').live('pageshow', function(event, ui) {
alert('Page 2 - CID: ' + getParameterByName('cid'));
});

function getParameterByName(name) {
var match = RegExp('[?&]' + name + '=([^&]*)').exec(window.location.search);
return match && decodeURIComponent(match[1].replace(/\+/g, ' '));
}

HTML(将 rel="external"添加到链接)

<div data-role="page" id="home">
<div data-role="content">
<ul data-role="listview" data-inset="true" data-theme="c" data-dividertheme="f">
<li data-role="list-divider">
Home Page
</li>
<li>
<!--
Pass Parm Here before the hash page
and treating link as external
-->
<a href="?cid=1234#page2" rel="external">Page 2</a>
</li>
</ul>
</div>
</div>
<!-- page 2 -->
<div data-role="page" id="page2">
<div data-role="content">
<ul data-role="listview" data-inset="true" data-theme="c" data-dividertheme="f">
<li data-role="list-divider">
Page 2
</li>
<li>
<a href="?cid=4321#home">Home Page</a>
</li>
</ul>
</div>
</div>

关于javascript - 非 PushState 浏览器中的 JQuery Mobile 查询字符串问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7489425/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com