2010-08-26 5 views
2

Je trouve ce bout de code, qui fonctionne un régal:jquery variables Gettings de img src plutôt que window.location.href

$.urlParam = function(name){ 
    var results = new RegExp('[\\?&]' + name + '=([^&#]*)').exec(window.location.href); 
    if (!results) { return 0; } 
    return results[1] || 0;} 
} 

Donc, si la chaîne url/requête a été xyz.com/index.html ? lang = de

appelez simplement var langval = $ .urlParam ('lang'); et vous l'avez

-

Mon information vient de cliquer sur une image, donc je créé ce code:

$('#admin-slideshow img').click(function() { 
    alert($(this).attr('src')); 
} 

Donc, si le code était:

<a href="#"><img src="image.php?url=image.jpg&tid=1&opn=1" /></a> 

il alerterait juste cela (image.php? Url = image.jpg & tid = 1 & opn = 1). Je pensais que je devais ajouter cet extrait de code $ (this) .attr ('src'); et remplacez-le par window.location.href. Ça ne marche pas. Aucune suggestion?

$('#admin-slideshow img').click(function() { 
    $.urlParam = function(name){ 
     var results = new RegExp('[\\?&]' + name + '=([^&#]*)').exec($(this).attr('src')); 
     if (!results) { return 0; } 
     return results[1] || 0;} 
    } 
} 

Répondre

2

essayer,

$.urlParam = function(name, src){ 
    var results = new RegExp('[\\?&]' + name + '=([^&#]*)').exec(src || window.location.href); // if src is undefined defualt is window.location.href 
    if (!results) { return 0; } 
    return results[1] || 0; 
} 

utilisent comme

$.urlParam('lang',window.location.href); // for url or just $.urlParam('lang'); 
$.urlParam('lang',$('#admin-slideshow img').attr('src')); // for images 

$('#admin-slideshow img').click(function() { 
    alert($.urlParam('opn',this.src)); 
} 
+0

Vous devez inverser 'src' et' name' dans la signature de la fonction: 'function (name, src)', car si 'src' est le premier paramètre, il sera ** toujours ** défini. '$ .urlParam ('lang')' aurait 'lang' comme source et' name' serait indéfini. –

+0

bon point. merci Felix. – Reigel

+0

Merci. J'ai mis des alertes tout au long du script, pour voir où il y a des erreurs, et ça ne passe rien ... Je ne sais pas pourquoi ça ne marcherait pas. –

1
function urlParam(name){ 
    var results = new RegExp('[\\?&]' + name + '=([^&#]*)').exec(window.location.href); 
    return (results != undefined) ? results[1] : false; 

} 

Suppression des erreurs js quand param url introuvable.

Questions connexes