有没有办法在URL中检查jQuery for POST,类似于PHP方式?
PHP版本:
if(!empty($_GET)) { // do stuff }
对不起。我的意思是 GET 而不是POST。
我希望在页面加载$(document).ready( function() { // here });
示例网址:http://www.domain.com?a=1
而不是过去value of the var a
进入函数OnLoad();
答案 0 :(得分:3)
扩展jquery以获取url vars
$.extend({
getUrlVars: function(){
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;
},
getUrlVar: function(name){
return $.getUrlVars()[name];
}
});
然后你可以打电话
if($.getUrlVars().length > 0){ // do something }
您还可以通过
查询特定值if($.getUrlVar('name') == 'frank'){
答案 1 :(得分:2)
新答案
只需使用JavaScript检查是否存在查询字符串。
if(location.search.length > 0)
alert('Horay horah!');
如果您需要获取查询字符串中的实际数据,可以使用Query String Object jQuery插件,或者继续解析location.search
文本。
答案 2 :(得分:2)
如果你想使用JQuery获取QueryString参数,我建议你使用以下代码 - 它将参数存储在一个全局变量中(提示投诉!),然后将查询字符串解析为该变量:
var urlParams = {};
(function () {
var e,
a = /\+/g, // Regex for replacing addition symbol with a space
r = /([^&=]+)=?([^&]*)/g,
d = function (s) { return decodeURIComponent(s.replace(a, " ")); },
q = window.location.search.substring(1);
while (e = r.exec(q))
urlParams[d(e[1])] = d(e[2]);
})();
使用示例:
网址= http://www.mywebsite.com/open?abc=123&def=234
alert(urlParams["abc"]);
将显示值为“123”的警报;
答案 3 :(得分:1)
没有。 JavaScript无法访问POST数据。
您必须在PHP中进行检查,并输出一些JavaScript设置变量以让它知道结果。
e.g。
if(!empty($_POST))
echo "<script type='text/javascript'> post_not_empty = true; </script>";
答案 4 :(得分:1)
用于完成此操作的jquery插件:
/*
jQuery Url Plugin
* Version 1.0
* 2009-03-22 19:30:05
* URL: http://ajaxcssblog.com/jquery/url-read-get-variables/
* Description: jQuery Url Plugin gives the ability to read GET parameters from the actual URL
* Author: Matthias Jäggli
* Copyright: Copyright (c) 2009 Matthias Jäggli
* Licence: dual, MIT/GPLv2
*/
(function ($) {
$.url = {};
$.extend($.url, {
_params: {},
init: function () {
var paramsRaw = "";
try {
paramsRaw =
(document.location.href.split("?", 2)[1] || "").split("#")[0].split("&") || [];
for (var i = 0; i < paramsRaw.length; i++) {
var single = paramsRaw[i].split("=");
if (single[0])
this._params[single[0]] = unescape(single[1]);
}
}
catch (e) {
alert(e);
}
},
param: function (name) {
return this._params[name] || "";
},
paramAll: function () {
return this._params;
}
});
$.url.init();
})(jQuery);
用法:$.param("key")
$.param('a')