4 votos

Conjunto de aplicaciones Applescript

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

Este código funciona sólo 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 un array/lista pero creo que este no es el camino porque no funciona:

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

4voto

michael Puntos 285

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

Una buena manera de evitar esto es utilizar un repeat with variable in list enfoque. Esto le permite pasar por cada elemento de una lista y ejecutar su código con cada elemento de la lista individualmente.
A continuación te explicamos cómo aplicarlo a tu 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 repeat with y el bloque "Safari" literal se sustituye por browser , una referencia al navegador actual en la lista de navegadores (el código se ejecutará una vez por cada navegador de la lista).

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X