2009-12-03 3 views
0

Comment récupérer l'appel javascript dans la balise d'ancrage ci-dessous dans JS ou JQuery? Fondamentalement, je veux obtenir le code ("javascript: do_my_function ('blah', 'string1', 1);") récupéré afin que je puisse l'exécuter. Cette ancre est également enfouie plusieurs fois dans certaines balises div.Tirer le code javascript de la balise en utilisant js ou jQuery

<a onmouseout="swapImage('btn1','','http://img2.comp.com/img/buttons/btn_g.png',1)" onmousedown="swapImage('btn1','','http://img2.comp.com/img/buttons/btn_g_d.png',1)" onmouseover="swapImage('btn1','','http://img2.comp.com/img/buttons/btn_g_a.png',1)" href="javascript:do_my_function('blah', 'string1', 1);"> 
<img id="btn1" width="180" height="60" alt="" src="http://img2.comp.com/img/buttons/btn_ge.png"/> 
</a> 
+1

Vous devriez probablement vous pencher sur l'utilisation de css pour le changement d'image. – gn22

Répondre

0

Pour le récupérer juste utiliser:

var href = document.getElementById('btn1').parentNode.href; 

qui trouve juste le img par id, et saisit son parent, l'étiquette a en question.

Pour appeler, vous pouvez utiliser:

window.location = href; 

Ou vous pouvez l'analyser et eval() il. Tout cela est d'ailleurs très peu conventionnel. N'avez-vous plus aucun contrôle sur le code?

+0

La première partie semble fonctionner où j'affecte la valeur href à une variable. Cependant, je dois supprimer la principale chaîne "javascript:". La chose étrange est que l'eval (href) fonctionne quand je l'exécute depuis la console dans firebug mais quand j'essaye de l'exécuter dans JS à partir de la page rendue, j'obtiens une erreur de "fonction non définie". Faire le "window.location" échoue parce qu'il semble qu'il essaye de naviguer à la fonction de JS. Je ne veux pas m'en aller, appelez simplement la fonction. – GregH

0

Pour le faire avec jQuery vous pouvez faire

var jscript = $('#btn1').parent().attr('href'); 
eval(jscript); 

Ce n'est pas une méthode recommandée pour faire des choses. Changer le html serait beaucoup mieux

Questions connexes