0 votes

On ne peut pas utiliser "open location" quand il fait partie d'un script plus long.

Le script suivant fonctionne bien pour ouvrir une URL dans mon navigateur par défaut :

open location "https://google.com"

Cependant, j'ai un script existant qui récupère une URL dans ma fenêtre Terminal pour l'ouvrir dans mon navigateur. Lorsque j'utilise ce script, j'obtiens l'erreur "Expected end of line but found identifier" et la variable pour mon URL a été mise en évidence :

use framework "Foundation"

tell application "Terminal"
    set windowContents to the contents of the front window
end tell
set windowContents to current application's class "NSString"'s stringWithString:windowContents
set fidoRegexPattern to "<PATTERN>"
set fidoRegex to current application's class "NSRegularExpression"'s regularExpressionWithPattern:(fidoRegexPattern) options:(0) |error|:(missing value)
set matchRanges to (fidoRegex's matchesInString:(windowContents) options:(0) range:({0, windowContents's |length|()}))'s valueForKey:("range")

set urlStrings to current application's class "NSMutableArray"'s new()
repeat with thisRange in matchRanges
    tell urlStrings to addObject:(windowContents's substringWithRange:(thisRange))
end repeat
-- return urlStrings as list
set urlList to urlStrings as list
set fidoUrl to the last item of urlList
open location fidoUrl
return fidoUrl

Même si j'essaie de remplacer fidoUrl pour un littéral de chaîne d'URL, j'obtiendrai la même erreur, sauf qu'il dira qu'il a trouvé " au lieu de la fin de la ligne.

Tout le reste du script semble correct. Si j'enlève le open location et regardez la return les résultats de la ligne, cela me donne l'URL que j'attends.

Une recherche sur Google semble indiquer que je pourrais obtenir cette erreur s'il y a un problème avec le script lui-même, mais je ne vois rien.

1voto

wch1zpink Points 6067

Chaque fois que vous ajoutez un use statement à un script, scripting additions n'est plus ajouté par défaut. Il doit être ajouté à nouveau.

Ajoutez le texte suivant après use framework "Foundation"

 use scripting additions

Si pour une raison quelconque vous ne voulez pas scripting additions disponibles dans l'ensemble de votre script, l'option suivante fonctionnera également.

using terms from scripting additions
    open location "https://google.com"
end using terms from

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X