2 votos

AppleScript y Javascript cambiar el color del texto en safari

No estoy seguro de si esto es posible, pero digamos que tengo un par de variables :

var1 "text1'
var2 "2018"
var3 "demo@apple.com"

Puedo hacer Applescript para encontrar cada instancia de este texto en el Safari (la ficha) y cambiar el color del texto? (

"el documento.getElementById("foundhtmlhere").de estilo.color = "#ff0000";"

o

documento.querySelector("td >").de estilo.backgroundColor = "rojo";

--

Estoy seguro de que hay una mejor opción, tal vez usando JavaScript Cadena de búsqueda() / selector pero estoy todavía tiene que ir a través de este. Supongo que puede buscar dentro del cuerpo con este, entonces, tal vez usando el delimitador de texto ? Estoy un poco perdido

 tell application "Safari"
    tell document 1
        set body to do JavaScript "document.body.innerHTML"
        set body to do JavaScript "document.getElementsByTagName('body').item(0).innerHTML"
    end tell
end tell
return body

1voto

Baczek Puntos 150

Usted puede utilizar el window.find('someString', false or true) comando para buscar una cadena en el texto del documento.

El segundo parámetro del comando, si es verdadero, se especifica un caso sensible de búsqueda.

El uso de la document.execCommand('HiliteColor', false, someColor) comando para cambiar el color de fondo de la funda de texto.


Aquí está el script de ejemplo, probado en la Sierra.

set myList to {"text1", "2018", "demo@apple.com"}

tell application "Safari"
    -- to change the color,  set the 'document.designMode' to on
    -- get the scroll position of the document, because the 'window.find()' command change the scroll position when it select the founded string
    set scrollPos to do JavaScript "document.designMode = 'on'; [window.pageXOffset.toString(),window.pageYOffset.toString()]" in document 1

    repeat with thisText in myList
        do JavaScript "var sel = window.getSelection();
                sel.collapse(document.body, 0);//------    To start at the beginning of the document, not after the selectioned text
                while (window.find('" & thisText & "', true)) {document.execCommand('HiliteColor', false, '#ff0000');}
                sel.collapseToEnd()" in document 1
    end repeat

    -- restore the scroll position
    do JavaScript "document.designMode = 'off';  window.scrollTo(" & (item 1 of scrollPos) & ", " & (item 2 of scrollPos) & ")" in document 1
end tell

0voto

MBUST Puntos 43

Si te refieres a la normal, en una página que visita, ya que sería hacer un find (cmd-f), que subraya el texto, con AppleScript la respuesta es no (el diccionario de AppleScript para Safari no te da esa opción).

Si, por otro lado, la media para buscar texto en una página html que se está editando para, a continuación, cargar, entonces sí, usted puede cambiar el color de forma automática con tu editor de html, pero creo que no es lo que usted está describiendo.

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