我已经成功地能够使用 Javascript 将 GUID 添加到 URL。这是我目前正在使用的代码:
<script>
if ((navigator.userAgent.match(/iPhone/i)) || (navigator.userAgent.match(/iPod/i)) ||(navigator.userAgent.match(/iPad/i))) {
function S4() {
return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);
}
// then to call it, plus stitch in '4' in the third group
guid = (S4() + S4() + "-" + S4() + "-4" + S4().substr(0, 3) + "-" + S4() + "-" + S4() + S4() + S4()).toLowerCase();
//alert(guid);
var lc = window.location;
if (!(/\?guid=/.test(lc))) {
window.location = window.location + '?guid=' + guid
}
}//End if iPhone
</script>
问题:
现在我想测试 URL 以查看它是否在 URL 中已经有一个查询字符串,如果有,则将 GUID 附加到查询字符串 URL 的末尾。我怎么做?
假设我有类似的查询字符串 URL 是这样的:http://mysite.com/mypage?query=http: //mysite.com/myotherpage
我想将 GUID 添加到查询 URL 的末尾,如下所示:
http://mysite.com/mypage?query=http://mysite.com/myotherpage&guid=123456789153456
注意:您可能会问我为什么要检测 iPhone/iPod/iPad 并向 URL 添加 GUID。这是因为 iOS 6.0+ 中的一个记录在案的疯狂错误/功能与 Mobile Safari 相结合,仍未通过“超级缓存”POST 调用修复。因此,添加 GUID 会迫使优秀的 ol' iToys 强制进行新的页面查找。讨厌破解这个,但我们尝试了 Pragma=no-cache、Expires=0 和 Cache-Control=no-cache,发现问题仍然存在。所以是的。