resaltando texto en safari

2

Necesito resaltar cada instancia de algunas palabras clave en Safari.

Tengo este script que funciona:

set myList to {"demo", "demo1"}


try
    tell application "Safari"
        do JavaScript "document.designMode = 'on';" in tab 1 of window 1


        repeat with thisText in myList
            do JavaScript "var sel = window.getSelection();
                    sel.collapse(document.body, 0);
                    while (window.find('" & thisText & "', true)) {document.execCommand('HiliteColor', false, '#5cdf64');}
                    sel.collapseToEnd()" in tab 1 of window 1
        end repeat
        do JavaScript "document.designMode = 'off';" in tab 1 of window 1

    end tell
on error
    --
end try

¿Cómo puedo hacer para ejecutar en todas las pestañas en lugar de una sola pestaña?

Intento esto, pero esto no funciona debido a la forma en que el safari está entregando pestañas

try
    tell application "Safari"
        repeat with atab in tabs
            do JavaScript "document.designMode = 'on';" in atab of window 1


            repeat with thisText in myList
                do JavaScript "var sel = window.getSelection();
                    sel.collapse(document.body, 0);
                    while (window.find('" & thisText & "', true)) {document.execCommand('HiliteColor', false, '#5cdf64');}
                    sel.collapseToEnd()" in atab of window 1
            end repeat
            do JavaScript "document.designMode = 'off';" in atab of window 1
        end repeat
    end tell
on error
    --
end try

decirle a la aplicación "Safari"     contar cada pestaña         - > número de error -1728 de cada pestaña decirle al final

la actualización, el único problema, hace que la página se desplace hacia arriba y hacia abajo cada vez que se realice la repetición:

repeat 50 times
    set mylist to {{"ask", "#5cdf64"}, {"yesterday", "#FFFF00"}, {"more random e.g", "#FF0000"}}
    tell application "Safari"
        activate
        set theWindow to front window
        tell theWindow
            set tabCount to count of tabs
            repeat with tabIndex from 1 to tabCount
                set current tab to tab tabIndex
                tell current tab
                    repeat with colourPair in mylist
                        do JavaScript "document.designMode = 'on'"
                        do JavaScript "var sel = window.getSelection(); sel.collapse(document.body, 0); while (window.find('" & (item 1 of colourPair) & "', true)) {document.execCommand('HiliteColor', false, '" & (item 2 of colourPair) & "');}"
                        do JavaScript "document.designMode = 'off'"
                    end repeat
                end tell
            end repeat
        end tell
    end tell
end repeat
    
pregunta Kevin 26.11.2018 - 14:29

0 respuestas

Lea otras preguntas en las etiquetas