0 votos

AppleScript para pedir la entrada de la url, abrir la url en safari, luego abrir el marcador con un nombre específico

Tengo un marcador que ejecuta algún código JavaScript en el sitio web que el usuario tiene abierto en el momento de ejecutar el marcador - Soy consciente de que hay una manera de utilizar AppleScript para ejecutar JavaScript en una página de Safari, pero esto requiere 'Permitir JavaScript de eventos de Apple' que estoy tratando de evitar.

Me gustaría que el script pidiera al usuario que introdujera una url, entonces abrirá una nueva ventana con esta página y luego hará clic en el marcador que a su vez ejecutará algún JavaScript en la página abierta.

Hasta ahora, mirando los posts existentes aquí en StackExchange, he podido conseguir que abra los marcadores en diferentes pestañas, pero estoy luchando para modificarlo para que abra un marcador con nombre específico en la página que el script ha abierto.

Apreciaría cualquier ayuda que alguien pueda dar.

EDIT 1: El código que estoy modificando de: En Safari, ¿se puede abrir un conjunto de marcadores en una carpeta mediante programación (por ejemplo, utilizando AppleScript)?

EDIT 2: Aquí está mi última revisión del código:

@user3439894 He cambiado mi código a

tell application "Safari" to activate

delay 1

tell application "System Events" to ¬
    click menu item "Google" of ¬
        application process "Safari"

Al haber un marcador titulado "Google", no estaba seguro de si mantener la línea "proceso de aplicación "Safari"" o no, pero tanto si se mantiene como si se elimina, obtengo "No se puede obtener el elemento de menú "Google" del proceso de aplicación "Safari"".

0 votos

Por favor, añada el código que ya tiene.

0 votos

@nohillside acaba de añadir el enlace al código que estoy modificando e incrustado dentro de mi post

0 votos

Puede cambiar Open in New Tabs en click menu item "Open in New Tabs" of ¬ a la nombre del objetivo marcador o utilice el botón valor del índice por ejemplo 1 o lo que sea número está en el lista de la bookmarksFolder menú para que haga clic en que marcador .

0voto

user3439894 Puntos 5883

Me gustaría que el script pidiera al usuario que introdujera una url, entonces abrirá una nueva ventana con esta página y luego hará clic en el marcador que a su vez ejecutará algún JavaScript en la página abierta.

El ejemplo AppleScript código que se muestra a continuación, se probó en Script Editor en MacOS Catalina con Lengua y región ajustes en Preferencias del sistema ajustado a Inglés (EE.UU.) - Primaria y me ha funcionado sin problemas 1 .

  • 1 Asume los ajustes necesarios y apropiados en <strong>Preferencias del sistema </strong>> <strong>Seguridad y privacidad </strong>> <strong>Privacidad </strong>se han fijado/abordado según las necesidades.

Ejemplo AppleScript código :

set theURL to ""

repeat while theURL is ""
    set theURL to ¬
        the text returned of ¬
            (display dialog "Enter the URL:" default answer ¬
                "" buttons {"Cancel", "OK"} default button 2)
end repeat

tell application "Safari"
    activate
    make new document with properties {URL:theURL}
end tell

my waitForSafariPageToFinishLoading()

tell application "System Events" to ¬
    click menu item "Google" of ¬
        menu 1 of ¬
        menu bar item "Bookmarks" of ¬
        menu bar 1 of ¬
        application process "Safari"

--  # Handler #

to waitForSafariPageToFinishLoading()
    --  # Wait for page to finish loading in Safari.
    --  # This works in **macOS Catalina** and 
    --  # macOS Big Sur and may need adjusting for
    --  # other versions of macOS.
    tell application "System Events" to repeat until ¬
        exists (buttons of groups of toolbar 1 of window 1 of ¬
            process "Safari" whose name = "Reload this page")
        delay 0.5
    end repeat
end waitForSafariPageToFinishLoading

Notas:

Tengo un marcador que ejecuta un código JavaScript en el sitio web que el usuario tiene abierto en el momento de ejecutar el marcador.

El ejemplo AppleScript código hace exactamente lo que se pidió en la parte citada de la pregunta que aparece al principio de esta respuesta, sin embargo, la parte citada de la pregunta aparece al principio de esta Notas: sección No tengo forma de determinar lo que hace o si funciona o no, ya que no lo has incluido en un comentario bajo la pregunta. Por lo tanto, si lo que se presenta aquí no logra su objetivo usted está en su propia ya que no voy a responder más sin que usted proporciona toda la información solicitada.


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>pruebe con </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.

0 votos

Esto funciona bastante bien. Te agradezco mucho el tiempo que has dedicado a escribirlo. Actualmente el único problema que parece que tengo es después de la primera vez que se ejecuta no pide la url más, en su lugar se recuerda la url de entrada previamente.

0 votos

Ah, no te preocupes, lo he editado para reasignar la variable url a una cadena vacía y parece que se ha solucionado - una vez más, ¡gracias!

0 votos

@srb7 He cambiado la primera línea a set ... y eso resolverá el problema.

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