Matin tout,un symbole href firefox n provoque setter ne pas appeler
tôt lundi matin et je me bats pour comprendre pourquoi la ligne followng fonctionne dans IE et non pas dans FF.
<a class="button" href="#" onclick="setMaintenanceMode(false);">disable</a>
Dans les deux IE et FF l'URL lorsque vous passez la souris sur le bouton est ...
http://localhost:8080/mainapp/secure/gotoDevice.action?hardwareId=1&storeCode=2571#
Lorsque le bouton est cliqué, la méthode suivante est appelée ...
function setMaintenanceMode(enabled) {
var url = '<s:url action="secure/setMaintenanceMode"/>' + '&ModeEnabled=' + enabled;
document.location.href = url;
}
L'URL docuement est envoyée est (dans les deux navigateurs) ...
/mainapp/secure/gotoDevice.action?hardwareId=1&storeCode=2571&ModeEnabled=false
Le problème est que dans IE la méthode sur l'action struts 'setSetCode()' est appelée, mais à partir de FF elle n'est pas! Si je supprime le hash ahref ci-dessus FF fonctionne, mais IE ne fonctionne pas (href = "#").
J'ai essayé de changer le '&ModeEnabled='
en '&ModeEnabled='
, mais sans succès. J'ai regardé google et le forum Struts, mais pas de succès. Je suis tenté d'arracher tous les ahref et de les remplacer par des Dojo et de voir si cela fonctionne, mais avant je le fais, je me demandais si quelqu'un pouvait expliquer pourquoi. Je pense que ahref est la mauvaise chose à utiliser, mais pourquoi?
Si quelqu'un pouvait m'aider à comprendre pourquoi bien que ce serait apprécié.
Merci Jeff Porter
EDIT: La fausse déclaration fait partie de la solution. Le problème semble être que l'url ..
/mainApp/secure/setMaintenanceMode.action?hardwareId=5&storeCode=2571&ModeEnabled=true
a le &
à l'intérieur, si je vais à cette URL comme il est, il fonctionne dans IE, mais pas dans FF.
si je change les deux pour être &
alors cela fonctionne dans IE & FF.
si je change les deux pour être &
alors il fonctionne toujours dans IE mais pas FF.
Des idées?
Note:
Il semble que pavane 2.0.9 ne supporte pas la propriété escapeAmp
sur l'étiquette <s:url
:
Par paramètres de la requête par défaut seront séparés en utilisant esperluette (échappées à savoir
&
). Cela est toutefois nécessaire pour la conformité XHTML, lorsque vous utilisez l'URL générée par cette balise avec la balise<s:property>
, l'attributescapeAmp
doit être utilisé pour désactiver l'esperluette et l'échappement.
soultion: return false
sur le onclick et passer à de nouvelles entretoises + set escapeAmp
param. sinon, url = url.replace("&", "&");
.
Non, sauf si vous 'setMaintenanceMode de retour (...' – Anonymous