4 votos

Applescript: Abrir actual Safari pestaña en Chrome (Solucionar problemas de guión de trabajo)

Por lo tanto, decidí hace un tiempo para ejecutar un Flash-instalar gratis de Safari. Ha sido realmente genial, Safari parece mucho más estable en general y yo apenas te lo pierdas.

Pero de vez en cuando me tropiezo con un sitio que requiere flash (la mayoría de los videos de YouTube, que yo pensaba que no iba a ser un problema dado que Google iba a ser cambiar todo a HTML5), así que para esos casos tengo una Appescript que se ejecuta cuando se activa a través de un Alfred de Flujo de trabajo (con un atajo de teclado). El guión es, como tal:

tell application "Safari"

    set theURL to URL of current tab of window 1

end tell

tell application "Google Chrome"

    if windows ≠ {} then
        make new tab at the end of window 1 with properties {URL:theURL}
    else
        make new window
        set URL of active tab to theURL
    end if
    activate

end tell

tell application "Safari"

    close current tab of window 1

end tell

Esto generalmente funciona perfectamente, pero me encuentro con un problema raro cada vez que Chrome no tiene una ventana abierta en el fondo. En estos casos, Chrome abierto un nuevo (en blanco) de la ventana, y el script se detendrá allí. El tercer Decirle declaración,

 tell application "Safari"

    close current tab of window 1

end tell

Nunca se ejecutará, dejándome con un abrir chrome ventana y una ventana de safari también. Es sólo después de presionar la tecla una segunda vez, después de que el Chrome ventana ya está abierta, para que el Script se ejecute su curso y abra la página en chrome/cerrar la pestaña en safari.

Alguna idea? Estoy realmente confundido por el hecho de que el tercer decirle instrucción no se ejecuta en absoluto. Si el Chrome ventana que se abre en blanco pero el safari ficha todavía cerrada, me imagino que fue un simple error en el if/else, pero el hecho de que el guión parece terminar realmente está haciendo campaña en mí en este caso.

2voto

adayzdone Puntos 1258

Sólo porque Safari y Chrome están ejecutando, no significa que tienen una ventana abierta. Usted puede probar para abrir windows como los puntos de la Marca o, simplemente, cuestión de la reapertura de comando que abre una ventana nueva si no existe.

tell application "Google Chrome"
    if not (exists window 1) then reopen
    -- insert your code 
end tell

tell application "Safari"
    if not (exists document 1) then reopen
    -- insert your code 
end tell

EDITAR

tell application "Safari"
    if not (exists document 1) then return
    set theURL to URL of current tab of window 1
    close current tab of window 1
end tell

tell application "Google Chrome"
    if not (exists window 1) then reopen
    set URL of active tab of window 1 to theURL
end tell

0voto

Malik hassan Puntos 16

Alfred pueden ser la protección de un error que se produce si Chrome se está ejecutando, pero no tener todas las ventanas abiertas.

Google Chrome tengo un error: no se Puede establecer la pestaña activa a "http.....".

Cambiar las líneas

  make new window
  set URL of active tab to theURL

a

set theWindow to make new window

set URL of active tab of theWindow to theURL

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