2009-09-03 7 views
0

Donc, je travaille sur une application de cartographie. Dans l'application, il y a ces barres d'outils et en fonction de certaines circonstances, je voudrais désactiver des outils spécifiques. Lorsqu'un outil est désactivé, c'est l'image qui change. Cette partie fonctionne bien.Comment exécuter javascript pour rétablir le code d'une ressource de script intégrée?

Maintenant, il y a tout ce Javascript qui est dans les ressources de script incorporées qui est exécuté lorsque certaines actions se produisent, comme la sélection d'un outil. Je n'ai aucun pouvoir sur ce Javascript.

Qu'est-ce qui se passe, c'est que Javascript est exécuté, ce qui change l'image de sa désactivée à sa valeur par défaut. C'est mauvais. Je voudrais savoir s'il y a un moyen de savoir si le code de la ressource de script a fonctionné ou de voir quand l'image a été modifiée afin que je puisse la changer immédiatement. Surpassant essentiellement le code dans la ressource de script. En d'autres termes, à chaque fois que cette image d'icônes passe de l'image désactivée à l'image activée via ce code javascript spécifique, puis-je la changer immédiatement en image désactivée?

Répondre

0

Bien que je pense que c'est une solution laide, vous pouvez le faire:

Disons que l'ID de l'image que vous souhaitez revenir à l'image désactivée lorsqu'elle est activée par troisième partie javascripts est « image1 », puis:

disable = function() { 
    $("image1").src = "lalala"; // lala being you disabled image URI 
    $("image1").observe("load", function(e) { 
     if(this.src != "lalala") this.src = "lalala"; 
    }); 
} 

Ce que vous ferez est d'observer la charge de l'image et de vérifier son attribut src. Si cela a été changé, changez-le à la valeur désirée.

Oh, cet extrait utilise les méthodes PrototypeJS. Bien sûr, vous pouvez traduire cela à votre framework JS préféré ou pur javascript.

+0

Merci monsieur, il est intéressant de noter que je viens de commettre presque exactement cette solution SVN il y a quelques minutes. C'est tout ce que je pouvais finalement penser à faire. Cela fonctionne bien. – Carter

+0

Oui, mais nous sommes d'accord: c'est moche! heh – wtaniguchi

+0

Oh, je suis certainement d'accord. – Carter

Questions connexes