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