Jquery obtains url parameters and url-based parameters. jqueryurl
Getting URLs using jquery and getting url parameters using jquery are common operations. The following describes how to add code analysis. For details, see the following.
1. jquery is easy to get the url. The Code is as follows:
Copy codeThe Code is as follows:
Window. location. href;
In fact, it only uses the basic window object of javascript and does not use jquery knowledge.
2. It is complicated for jquery to obtain url parameters. Regular Expressions are needed, so it is important to learn javascript Regular Expressions well.
First, let's take a look at how javascript is used to obtain a parameter in the url:
// Obtain the Parameter function getUrlParam (name) {var reg = new RegExp ("(^ | &)" + name + "= ([^ &] *) in the url. (& | $) "); // construct a regular expression object var r = window containing the target parameter. location. search. substr (1 ). match (reg); // match the target parameter if (r! = Null) return unescape (r [2]); return null; // return parameter value}
Pass the parameter name in the url through this function to get the parameter value. For example, if the url is
Http: // localhost: 33064/WebForm2.aspx? Reurl = WebForm1.aspx
To obtain the reurl value, you can write it as follows:
Copy codeThe Code is as follows:
Var xx = getUrlParam ('reurl ');
After understanding how javascript gets url parameters, we can use this method to expand a method for jquery to get url parameters through jquery. The following Code expands a getUrlParam () method for jquery.
(function ($) { $.getUrlParam = function (name) { var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); var r = window.location.search.substr(1).match(reg); if (r != null) return unescape(r[2]); return null; } })(jQuery);
After this method is extended for jquery, we can use the following method to obtain the value of a parameter:
Copy codeThe Code is as follows:
Var xx = $. getUrlParam ('reurl ');
Complete code:
<Script src = "js/jquery-1.7.2.min.js" type = "text/javascript"> </script> <script type = "text/javascript"> $ (function () {// Method 2: (function ($) {$. getUrlParam = function (name) {var reg = new RegExp ("(^ | &)" + name + "= ([^ &] *) (& | $ )"); var r = window. location. search. substr (1 ). match (reg); if (r! = Null) return unescape (r [2]); return null ;}) (jQuery); // Method 2: var xx =$. getUrlParam ('reurl'); // Method 1: // var xx = getUrlParam ('reurl'); alert (xx) ;}); // Method 1: // obtain the Parameter function getUrlParam (name) {var reg = new RegExp ("(^ | &)" + name + "= ([^ &] *) in the url. (& | $) "); // construct a regular expression object var r = window containing the target parameter. location. search. substr (1 ). match (reg); // match the target parameter if (r! = Null) return unescape (r [2]); return null; // return parameter value} </script>
Modification
When we use the above method to obtain url parameters today, the Chinese parameters passed in the url are garbled no matter how tested during parsing. After some debugging, I found that when I passed the parameter again, I used encodeURI for Chinese character encoding, and the above method used unescape for parameter encoding, modify it to decodeURI.
Appendix: W3School introduction:
JavaScript unescape () function
The unescape () function can decode strings encoded by escape.
Parameters |
Description |
String |
Required. The string to be decoded or reversed. |
Description
This function works like this: Find the character sequence in the form of % xx and % uxxxx (x indicates a hexadecimal number ), use Unicode characters \ u00xx and \ uxxxx to replace such character sequences for decoding.
Tips and comments
Note: ECMAScript v3 has removed the unescape () function from the standard and is opposed to using it. Therefore, use decodeURI () and decodeURIComponent () instead.
To sum up, javascript should be consistent with the parameter encoding and decoding methods:
Escape () unescape ()
EncodeURI () decodeURI ()
EncodeURIComponent () decodeURIComponent ()
Another method for obtaining url parameters using javascript found on the Internet:
<Script language = "JavaScript" type = "text/javascript"> function GetUrlParms () {var args = new Object (); var query = location. search. substring (1); // obtain the query string var pairs = query. split ("&"); // disconnect for (var I = 0; I <pairs. length; I ++) {var pos = pairs [I]. indexOf ('='); // find name = value if (pos =-1) continue; // skip var argname = pairs [I] if no value is found. substring (0, pos); // extract name var value = pairs [I]. substring (pos + 1); // extract value args [argnam E] = unescape (value); // save as attribute} return args;} var args = new Object (); args = GetUrlParms (); // if you want to find the parameter key: if (args ["id"]! = Undefined) {// if you want to find the parameter key: var value1 = args ["id"]; alert (value1) ;}</script>
Jquery takes url parameters and adds parameters to the url
(function ($) { $.extend({ Request: function (m) { var sValue = location.search.match(new RegExp("[\?\&]" + m + "=([^\&]*)(\&?)", "i")); return sValue ? sValue[1] : sValue; }, UrlUpdateParams: function (url, name, value) { var r = url; if (r != null && r != 'undefined' && r != "") { value = encodeURIComponent(value); var reg = new RegExp("(^|)" + name + "=([^&]*)(|$)"); var tmp = name + "=" + value; if (url.match(reg) != null) { r = url.replace(eval(reg), tmp); } else { if (url.match("[\?]")) { r = url + "&" + tmp; } else { r = url + "?" + tmp; } } } return r; } });})(jQuery);
Usage
Dev.zhang.com/IOF.Signup/index_uscn_chs.html? Act = 1
1. Use the value
$. Request ("act") = 1
2. url and Parameters
$. UrlUpdateParams (window. location. href, "mid", 11111 ),
Result window. location. href? Medium = 11111