1 votos

Comando de terminal para forzar la apertura de una nueva pestaña en Safari

Mientras se ejecuta el open https://www.google.com en el Terminal varias veces, me he dado cuenta de que la segunda vez que ejecuto el comando sólo muestra la ventana original de google.com en lugar de abrirse en una nueva pestaña. Funciona bien cuando se solicita un sitio web diferente.

¿Es un error de MacOS? He probado a configurar las nuevas pestañas como siempre en Safari, pero no ha habido suerte.

Estoy intentando que Safari abra siempre una nueva pestaña aunque sea la misma web. Para que sepas, tengo una para alertas de acciones y automáticamente abre una nueva pestaña del navegador por defecto al encontrar las acciones usando el Terminal, sin embargo, no abre nuevas pestañas correctamente como se describe arriba.

1voto

wch1zpink Puntos 11

Este comando de Terminal debería lograr lo que está buscando.

osascript -e 'tell application "Safari" to activate' -e 'tell application "Safari" to tell window 1 to set URL of (make new tab) to "https://www.google.com"' -e 'tell application "Safari" to tell window 1 to set current tab to last tab'

1voto

user3439894 Puntos 5883

Como el open comando no produce los resultados deseados, he aquí una adaptación de mi respuesta R: Abrir una URL en Safari con navegación privada que le permitirá abrir fácilmente un URL de la línea de comandos en un nuevo ficha de un Safari ventana Si se trata de un ficha con eso URL ya existe..

Funciona con independencia de que Safari se está ejecutando, y si se está ejecutando, si un ventana ya existe.

En Terminal , ejecute lo siguiente comando compuesto :

f='openurl'; touch "$f"; open -e "$f"; chmod +x "$f"

Copiar y pegar el ejemplo AppleScript código que se muestra a continuación, en el openurl documento y luego guárdalo.

A continuación, debe mover el openurl shell script a un directorio situado dentro del de la cáscara PATH .

Lo he trasladado a /usr/local/bin Por ejemplo,..:

sudo mv -v openurl /usr/local/bin/

Ahora desde Terminal Puedo abrir el mismo URL en un nuevo ficha Safari si un ficha con eso URL ya existe.

Escribiendo sólo el nombre del ejecutable nombre sin ninguna argumentos muestra cómo se puede utilizar, por ejemplo:

% openurl
Missing URL...
Example: openurl 'https://www.example.com'
%    

Ejemplo AppleScript código :

#!/usr/bin/osascript

on run args
    if args is {} then return ¬
        "Missing URL..." & linefeed & ¬
        "Example: " & (name of me) & space & "'https://www.example.com'"

    set theURL to first item of args as string

    if not running of application id "com.apple.Safari" then
        tell application id "com.apple.Safari"
            activate
            set i to 0
            repeat until exists window 1
                delay 0.1
                set i to i + 1
                if i  40 then return
            end repeat
            set URL of current tab of window 1 to theURL
        end tell
    else
        tell application id "com.apple.Safari"
            if exists window 1 then
                tell window 1 to set URL of (make new tab) to theURL
            else
                make new document with properties {URL: theURL}
            end if
        end tell
    end if
end run

Nota: El <em>ejemplo </em><strong>AppleScript </strong><em>código </em>es sólo eso y sin ningún tipo de inclusión <em>tratamiento de errores </em>no contiene ningún otro <em>tratamiento de errores </em>según corresponda. Corresponde al usuario añadir cualquier <em>tratamiento de errores </em>como sea apropiado, necesario o deseado. Eche un vistazo a la <a href="https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide/reference/ASLR_control_statements.html#//apple_ref/doc/uid/TP40000983-CH6g-129232" rel="nofollow noreferrer"><strong>intente </strong></a><em>declaración </em>y <a href="https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide/reference/ASLR_control_statements.html#//apple_ref/doc/uid/TP40000983-CH6g-129657" rel="nofollow noreferrer"><strong>error </strong></a><em>declaración </em>en el <a href="https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide/introduction/ASLR_intro.html" rel="nofollow noreferrer"><strong>Guía del lenguaje AppleScript </strong></a>. Véase también, <a href="https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide/reference/ASLR_error_xmpls.html#//apple_ref/doc/uid/TP40000983-CH221-SW1" rel="nofollow noreferrer"><strong>Trabajar con errores </strong></a>. Además, el uso de la <a href="https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide/reference/ASLR_cmds.html#//apple_ref/doc/uid/TP40000983-CH216-SW10" rel="nofollow noreferrer"><strong>retraso </strong></a><em>comando </em>puede ser necesario entre eventos cuando sea apropiado, por ejemplo <code>delay 0.5</code> con el <em>valor </em>de la <em>retraso </em>ajustado apropiadamente.

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