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.