2012-10-23 5 views
0

Je voudrais obtenir des variables de demande d'URL à partir d'un lien et les transmettre à un composant CFC. J'ai déjà un code de travail (jQuery, AJAX, CFC) qui va gérer tout, mais j'ai juste besoin de saisir #URL.whatever# à partir d'un lien particulier.comment obtenir une variable URL en utilisant jquery/javascript?

Dans le code Coldfusion, je peux facilement le faire avec #URL.whatever# mais je n'ai aucune idée de comment l'obtenir du côté client. Aussi, est-ce important si j'ai utilisé la réécriture d'URL IIS? Je suis en train de réécrire www.website.com/page.cfm?category=cat1 à www.website.com/page/cat1. Dans les deux cas, Coldfusion peut accéder à la variable de demande avec #URL.category#, il n'y a absolument aucune différence. Alors, comment puis-je faire cela avec JavaScript/jQuery, ça ne devrait pas être compliqué, non?

+0

Vous aurez besoin de l'écrire vous-même si vous le souhaitez. JavaScript n'a aucun moyen de savoir que le deuxième dossier que vous avez mappé à la catégorie lorsqu'il s'agit d'un sous-dossier de la page. – scottheckel

+0

quelque chose comme ça? http://jsfiddle.net/7MAUv/10/ – Ghostman

+0

pouvez-vous expliquer ce dont vous avez besoin en bref ??? – Ghostman

Répondre

0

Eh bien, nous aurons besoin de plus de détails pour suggérer comment obtenir une référence au lien, mais quelque chose comme cela devrait fonctionner:

HTML

<a id="mylink" href="www.website.com/page.cfm?category=cat1">Website.com</a> 

JS

var href = document.getElementById('mylink').href; 
0

À droite, ce que vous voulez utiliser est fonction pour analyser la variable window.location.href.

var URL_PARAM = getUrlVars()["category"]; 

Ou, si l'URL de votre page a été www.website.com/page.cfm?category=cat1 & anotherparam = 12345

var URL_PARAM1 = getUrlVars()["category"]; 
var URL_PARAM2 = getUrlVars()["anotherparam"]; 

Je ne peux pas dire avec certitude comment il fonctionner avec des réécritures d'URL.

URLVars:

function getUrlVars() { 
    var vars = {}; 
    var parts =window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m,key,value) { 
     vars[ decodeURIComponent(key)] = decodeURIComponent(value); 
    }); 
    return vars; 
} 
+0

Où est défini getUrlVars()? Essayer dans ma console n'a pas fonctionné .. –

+0

Ouais désolé bout cela, j'ai oublié je l'ai dans mon fichier principal js. Article original édité. –

+0

Votre 'getUrlVars' oublie de' decodeURIComponent' –

0

Cette question propose une méthode pour obtenir les variables, je trouve un peu plus facile à comprendre que l'expression régulière de Blaise. Il désencode également correctement les valeurs de l'URL Get Querystring with Dojo

function getUrlParams() { 

    var paramMap = {}; 
    if (location.search.length == 0) { 
    return paramMap; 
    } 
    var parts = location.search.substring(1).split("&"); 

    for (var i = 0; i < parts.length; i ++) { 
    var component = parts[i].split("="); 
    paramMap [decodeURIComponent(component[0])] = decodeURIComponent(component[1]); 
    } 
    return paramMap; 
} 

var params = getUrlParams(); 
console.log(params.myParam); 
+0

Je viens de tester votre code, il fait l'affaire :) comment puis-je manuellement définir la catégorie à tous si (location.search.length == 0) peut-être quelque chose comme ça var paramMap = All; est-ce correct? – user1751287

+0

@ user1751287 Non, c'est un code pour récupérer, pas pour paramétrer les paramètres url, ce serait une question complètement différente –

+0

pour clarifier quand la page ne contient pas de paramètre URL (www.website.com/page.cfm) Je voudrais le mettre à tous. Est-ce possible? – user1751287

Questions connexes