2017-10-03 3 views
1

Je travaille sur un bookmarklet qui nécessite plusieurs fonctions. Individuellement, je peux définir une fonction que je dois en appelant quelque chose comme:Définition de plusieurs fonctions globales dans un bookmarklet JavaScript

javascript:void(window.test1=function(){alert('hi');}); 

Mais dès que je tente d'ajouter une deuxième fonction, il cesse de fonctionner. En cours d'exécution cela génère une erreur dans la console indiquant "Identificateur inattendu". J'ai essayé de séparer les deux déclarations de fonction avec un point-virgule, un espace, et un retour de chariot (ces deux derniers codé en hexadécimal en% 20 et% 0A), en les insérant entre donc:

javascript:void(window.test1=function(){alert('hi');};window.test2=function(){alert('bye');}); 

Cela ne travailler soit; il renvoie le message d'erreur "Jeton inattendu". Comment définir deux fonctions consécutivement dans le contexte d'un bookmarklet?

Répondre

2

Essayez d'envelopper toutes les fonctions internes dans 1 fonction et définissez toutes les fonctions nécessaires dans la fonction interne comme propriétés/méthodes sur l'objet window comme vous le faites ici.

Ainsi:

javascript:void(function(){window.test1=function(){alert('hi');};window.test2=function(){alert('bye');}}()); 
+0

Merci, qui a fonctionné bien. Je vais modifier votre réponse pour mettre dans le code de travail afin que les futurs visiteurs auront un exemple fini. –