Matriz de aplicaciones de AppleScript

4

Tengo un script que vuelve a cargar la pestaña activa de un navegador abierto, pero quiero que lo haga con todos los navegadores abiertos. ¿Hay alguna manera de hacer una lista / matriz y usarla en este código?

Este código solo funciona con un navegador:

if application "Safari" is running then
    tell application "Safari"
        activate
    end tell
    tell application "System Events"
        tell process "Safari"
            keystroke "r" using {command down}
        end tell
    end tell
end if

He intentado crear una matriz / lista pero creo que no es así porque no funciona:

set browsers to {"Google Chrome", "Firefox", "Opera", "Safari"}
    
pregunta tenshimsm 24.06.2012 - 00:23

1 respuesta

4

Por lo general, no puede sustituir una lista por una cadena y hacer que las cosas funcionen sin otros cambios.

Una buena manera de evitar esto es usar un enfoque de repeat with variable in list . Esto le permite recorrer cada elemento de una lista y ejecutar su código con cada elemento de la lista individualmente.
Aquí es cómo aplicar eso a su código:

set browsers to {"Google Chrome", "Firefox", "Opera", "Safari"}

repeat with browser in browsers
    if application browser is running then
        tell application browser
            activate
        end tell
        tell application "System Events"
            tell process browser
                keystroke "r" using {command down}
            end tell
        end tell
    end if
end repeat

Todo es igual, excepto que su código está envuelto en un bloque repeat with y el literal "Safari" se reemplaza con browser , una referencia al navegador actual en la lista de navegadores (el código se ejecutará una vez para cada navegador en la lista).

    
respondido por el Nathan Greenstein 24.06.2012 - 02:13

Lea otras preguntas en las etiquetas