2010-08-02 4 views
5

J'ai l'adresse suivanterequête de paramètre à partir d'une URL qui a une URL avec inturn des paramètres de requête

http://somesite/somepage.aspx 

Je passe une valeur de paramètre de requête qui a une autre URL avec des paramètres de la requête comme celle-ci.

http://somesite/somepage.aspx?pageURL=http://someothersite/someotherpage.aspx?param1=value&source=http://anotheronesite/anotherpage

J'ai besoin pour obtenir la valeur de PAGEURL que celui dans les caractères gras. Mais je reçois

http://someothersite/someotherpage.aspx?param1=value 

et je ne reçois pas le paramètre source. J'utilise la fonction JavaScript suivante -

function getParameterByName(name) 
    { 
    name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]"); 
    var regexS = "[\\?&]"+name+"=([^&#]*)"; 
    var regex = new RegExp(regexS); 
    var results = regex.exec(window.location.href); 
    if(results == null) 
     return ""; 
    else 
     return decodeURIComponent(results[1].replace(/\+/g, " ")); 
    } 

Des idées?

+0

D'où obtenez-vous le nom/URL? –

+0

Je définis dans le code derrière - C#. – NLV

+0

Je veux tout pageURL. Cela ne va pas changer. Puis-je le faire? Une fonction spécifique prenant pageURL comme paramètre est correcte. – NLV

Répondre

2

Vous devez utiliser URL encoding pour coder le paramètre. Sinon, & est traité comme caractère réservé et appartient à "l'URL de base".

+0

Merci. Ça a bien marché. – NLV

0

Avez-vous considéré html url codant le paramètre pageURL?

cela simplifierait grandement votre tâche

+0

Laissez-moi essayer. – NLV

+0

Ok, pouvez-vous expliquer comment cela m'aiderait? – NLV

+0

Aucun indice. Se coincer dans le même problème. Des idées? – NLV