2 votos

¿Cómo puedo usar la variable en AppleScript para el nombre del navegador?

Estoy tratando de racionalizar un AppleScript que supervisa si las pestañas en los navegadores web están actualmente abiertos a sitios específicos.

Puedo repetir el mismo bloque de código varias veces, torpe pero funciona:

tell application "Safari"
    repeat with site in sitelist
        repeat with w from 1 to number of windows
            set tabList to (every tab of window w whose URL contains site)
        end repeat
    end repeat
end tell
tell application "Chrome"
    repeat with site in sitelist
        repeat with w from 1 to number of windows
            set tabList to (every tab of window w whose URL contains site)
        end repeat
    end repeat
end tell

Me gustaría que este código funcione para más navegadores que sólo estos dos. He intentado usar una variable para representar el nombre del navegador:

set browserlist to {"Safari", "Chrome"}

repeat with browser in browserlist
    tell application browser
        repeat with site in sitelist
            repeat with w from 1 to number of windows
                set tabList to (every tab of window w whose URL contains site)
            end repeat
        end repeat
    end tell
end repeat

Pero AppleScript me da un error de sintaxis, "Espera que el nombre de la clase, pero encontró la propiedad." Al parecer, cuando me cambie tell application "Safari" a tell application browser, que tiene un problema con tab en esta línea:

set tabList to (every tab of window w whose URL contains site)

Puedo conseguir tab trabajar con la variable browser?

Gracias!

3voto

red_menace Puntos 111

Que no funciona debido a que el objetivo de una aplicación tell declaración es necesaria en tiempo de compilación para cargar su diccionario de secuencias de comandos. Una aplicación de la terminología es definido sin embargo, el desarrollador quiere, así que cualquier cosa similar entre aplicaciones, es más de un accidente de cualquier tipo de convenio.

Lo más cercano que vamos a conseguir sería crear mediante programación un script como una cadena de texto y lo uso con un run script declaración, ya que la secuencia de comandos en la cadena se compila cuando se utiliza:

set theApp to "Safari"
set theScript to "tell application \"" & theApp & "\" to get tabs of window 1"
run script theScript

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