2010-11-28 9 views
1

J'essaie d'appeler une fonction javascript entre ma chaîne de requête de la manière suivante, mais cela ne fonctionne pas ...... Quelqu'un peut-il indiquer si je le fais correctement ou ne pas? Mon motif est d'enlever les caractères spéciaux (#, & etc) de l'un des paramètres (appName) dans ma chaîne de requête ............ plz help !!Appel de la fonction JavaScript entre l'URL Chaîne de requête

<a target="_self" onmouseout="hideTooltip()" onmouseover="showTooltip(event,'click on the name for additional details');return false" class="tip" href='<%=request.getContextPath()%>/index.jsp?page=myhome&type=details&appName=javascript:escape('<%=adMetricsVO.getApplicationName()%>')&Id=<%=bean.getID()%>'><%= bean.getName()%></a> 
+0

Vous ne pouvez pas exécuter JavaScript à l'intérieur de l'attribut 'href' - ce n'est pas un attribut prenant en charge JavaScript. – cdhowie

Répondre

1

Cela ne fonctionnera pas car l'interpréteur Javascript ne sera pas impliqué dans le comportement "clic" ordinaire de l'élément. En d'autres termes, Javascript ne va jamais à voir cette valeur "href". Pour ce faire, vous pouvez soit échapper le nom de l'application sur le serveur, soit mettre l'URL dans un morceau séparé de Javascript que vous connectez à la fenêtre "load", ou quelque chose comme ça.

Vous pouvez également faire en sorte que le "clic" soit géré par un gestionnaire Javascript qui crée l'URL et recharge la page.

2

C'est très faux. (et impossible à faire pendant que vous essayez)

Vous devez échapper le getApplicationName() sur le serveur.
Vous devez encoder l'URL, puis l'encoder en.