Cette fonction d'utilité jQuery vérifie efficacement un paramètre dans l'URL actuelle. S'il est absent, il ajoute le paramètre et renvoie l'URL complète et mise à jour. Ceci est particulièrement utile pour les demandes AJAX à la mise à jour d'une base de données et à rediriger par la suite la même page, mais avec un indicateur indiquant une mise à jour réussie (par exemple, pour afficher un message de confirmation).
(function($,W,D){ var JQUERY4U = {}; JQUERY4U.UTIL = { /** * Appends a parameter to a URL if it doesn't already exist. * @param {string} param - The parameter name to add. * @param {string} value - The parameter value. * @returns {string} The URL with the appended parameter. */ addParamToUrl: function(param, value){ // Check if parameter exists var regex = new RegExp(param + "=([^&]*)", "i"); var existingParam = regex.exec(W.location.search); var existingValue = existingParam && existingParam[1] || ""; // Construct the URL var loc = W.location; var url = loc.protocol + '//' + loc.host + loc.pathname + loc.search; // Add parameter if it doesn't exist if (existingValue === ''){ url += (loc.search === '' ? '?' : '&') + param + '=' + value; } return url; } }; // Example usage: var newUrl = JQUERY4U.UTIL.addParamToUrl('updated', 'true'); console.log(newUrl); // Input: http://jquery4u.com/index.php // Output: http://jquery4u.com/index.php?updated=true })(jQuery, window, document);
Questions fréquemment posées (FAQ) sur la manipulation des paramètres de l'URL jQuery
Pour ajouter plusieurs paramètres, exploitez la méthode $.param()
de jQuery pour sérialiser les objets de données en chaînes codées par URL:
var data = { param1: "value1", param2: "value2" }; var url = "http://example.com/page?" + $.param(data);
jQuery ne prend pas directement en charge la suppression des paramètres de l'URL. Utilisez plutôt des objets de JavaScript URL
et URLSearchParams
:
let url = new URL("http://example.com/page?param1=value1¶m2=value2"); url.searchParams.delete('param1');
Utilisez URLSearchParams.has()
pour vérifier efficacement si un paramètre existe:
let url = new URL("http://example.com/page?param1=value1¶m2=value2"); let hasParam1 = url.searchParams.has('param1'); // true
Modifier les valeurs des paramètres en utilisant URLSearchParams.set()
:
let url = new URL("http://example.com/page?param1=value1¶m2=value2"); url.searchParams.set('param1', 'newValue1');
Utilisez window.history.pushState()
pour mettre à jour l'URL sans rafraîchissement complet:
let url = new URL(window.location.href); url.searchParams.append('param1', 'value1'); window.history.pushState({}, '', url); ``` Remember that this only updates the URL in the browser's address bar; you'll need to handle any client-side updates based on the new URL parameters separately.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!