有什么方法可以在类似于 PHP 的 URL 中使用 jQuery 检查 POST 吗?
PHP版本:
if(!empty($_GET)) { // do stuff }
对不起。我的意思是GET不是 POST。
我正在寻找在页面加载时获取 URL$(document).ready( function() { // here });
示例网址:http://www.domain.com?a=1
并比过去value of the var a
进入功能OnLoad();
有什么方法可以在类似于 PHP 的 URL 中使用 jQuery 检查 POST 吗?
PHP版本:
if(!empty($_GET)) { // do stuff }
对不起。我的意思是GET不是 POST。
我正在寻找在页面加载时获取 URL$(document).ready( function() { // here });
示例网址:http://www.domain.com?a=1
并比过去value of the var a
进入功能OnLoad();
扩展 jquery 以获取 url 变量
$.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'){
新答案
只需使用 JavaScript 检查是否存在查询字符串。
if(location.search.length > 0)
alert('Horay horah!');
如果您需要在查询字符串中获取实际数据,您可以使用Query String Object jQuery 插件,或者您可以解析location.search
文本。
如果您想使用 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]);
})();
用法示例:
URL = http://www.mywebsite.com/open?abc=123&def=234
alert(urlParams["abc"]);
将显示值为“123”的警报;
不可以。JavaScript 无法访问 POST 数据。
您必须在 PHP 中进行检查,并输出一些 JavaScript 设置变量以使其知道结果。
例如
if(!empty($_POST))
echo "<script type='text/javascript'> post_not_empty = true; </script>";
一个 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')