L'infraction code jscalendar est la suivante:
Date.prototype.__msh_oldSetFullYear = Date.prototype.setFullYear;
Date.prototype.setFullYear = function(y) {
var d = new Date(this);
d.__msh_oldSetFullYear(y);
if (d.getMonth() != this.getMonth())
this.setDate(28);
this.__msh_oldSetFullYear(y);
};
qui redéfinit Date.setFullYear()
. Jetez un oeil aux commentaires # 124 et # 125 sur ce "old jscalendar" page.
Commentaire # 124 (par Chris Vif)
suggère la mise à jour calendar.js (près du fond, ~ ligne 1850).
For those getting the recursion error. You just need to comment a few lines. See below.
//Date.prototype.msh_oldSetFullYear = Date.prototype.setFullYear;
Date.prototype.setFullYear = function(y) {
var d = new Date(this);
//d.msh_oldSetFullYear(y);
if (d.getMonth() != this.getMonth())
this.setDate(28);
//this._msholdSetFullYear(y);
};
Commentaire # 125 (réponse Larisa)
The problem with recursion occurs due to multiple includes of calendar JavaScript on a page. As a result Date patch redefines setFullYear function twice and causes infinite loop when it gets executed. We fixed it by making sure that function is redefined only once:
if(Date.prototype.msh_oldSetFullYear == null) {
Date.prototype.msh_oldSetFullYear = Date.prototype.setFullYear;
}
Ces deux suggèrent mises à jour de calendar.js, ce qui est pas idéal car il est livré avec le plug-in.
Deux suggestions:
- Assurez-vous que vous n'êtes pas importer les ressources civiles à deux reprises. Avez-vous un
<calendar:resources/>
dans votre agencement principal et votre vue GSP? Si oui, retirez l'un d'entre eux.
- Si cela ne fonctionne pas, utilisez peut-être un plugin différent. Le plugin de calendrier semble n'avoir pas été mis à jour depuis longtemps (il utilise une ancienne version de jscalendar). Si vous vous sentez ambitieux, vous pouvez mettre à jour le plugin vous-même!
Merci beaucoup de me pointer au bon endroit. Comme vous l'avez dit, j'ai fait des changements directement dans le calendar.js dans le plugin et testé. Cela fonctionne bien. Mais puisque vous avez également souligné que ce n'est pas idéal pour toucher les fichiers plugin, je dois chercher un moyen approprié de le changer. – srisris