2016-05-14 1 views
0

J'essaie de transformer un ancien programme javascript en un service sur un mac utilisant automator. Lorsque j'utilise mon code, cela ne fonctionne pas. J'ai vérifié ce que je peux, et j'ai trouvé que le problème le plus bas que je rencontre est que la propriété .length de javascript ne fonctionne pas. Ce programme simple ne retourne pas ce qu'il devrait. Il ne retourne rien:
function run(input) { var ina = 'hello'; var newn = ina.length; return newn; }JXA et .length

Répondre

0

retourne Votre code 5.

entrée

est un tableau de 0 éléments. Pas très utile dans l'éditeur de script. Lorsqu'il est exécuté à partir d'une ligne de commande, ce sont les paramètres. Comme une note de côté est runner est le gestionnaire d'exécution pour tous les AppleScript (JXA y compris), de sorte que vous n'appeliez pas l'exécution de la fonction. C'est appelé pour toi.

MISE À JOUR: Dans l'automateur, le résultat (5) est envoyé à la tâche d'automate suivante. Vous pouvez faire un "Set Value of Variable" juste après avoir fait "Run JavaScript" avec votre script pour capturer le 5. enter image description here

+0

J'aurais dû être plus clair. Le problème est que lorsqu'il est exécuté dans un flux de travail d'automate, le workflow ne reconnaît pas le .length. Le code fonctionne dans l'éditeur de script, mais dans automator il ne retourne rien. –

+0

Voir mise à jour pour automator –

+0

J'ai essayé tout ce que vous avez fait, mais je pense que mon erreur doit provenir d'ailleurs car le texte sélectionné n'est pas remplacé. Vous avez raison à propos du problème de variable. Il sort 5 maintenant, mais il ne remplace pas le texte. [AutomatorPic] (http://i.imgur.com/eiSrtYx.png) –