Pregunta

Quiero que se ejecute un código JavaScript desarrollado personalmente cada vez que cargue una página en Safari. Parece que addblock para Safari hace esto. ¿Alguien sabe cómo hacer esto?

Safari no es extensible. No hay marco adicional para ello. Sin embargo, hay adblock y otros complementos disponibles, aunque los desarrolladores de Apple Webkit y Safari desalientan a los usuarios a usarlos, llamándolos 'hacks binarios'. Parece que algunos de estos complementos usan InputManager, que no está documentado en ninguna parte, al menos no por cómo las personas lo usan para cargar scripts en Safari. Supongo que tendré que hacer ingeniería inversa para ver cómo lo hace addblock, pero antes de hacerlo, pensé en preguntar por aquí. Alguien sabe?

¿Fue útil?

Solución

Los administradores de entrada son una forma comúnmente utilizada (ab) de inyectar código arbitrario en el tiempo de ejecución de otra aplicación. Una vez que esté allí, debe realizar una ingeniería inversa de la aplicación en sí misma para descubrir cómo obtener el comportamiento que desea; por lo general, eso implica un método de intercambio para reemplazar partes de la aplicación que está pirateando. No está documentado porque no hay una API para documentar, pero puede aprender sobre las piezas individuales (cómo escribir un administrador de entrada en general, cómo funciona la combinación de métodos en Objective C, cómo usar herramientas como class-dump) y luego ponerlo todo juntos.

Sin embargo, lo que estás describiendo suena como Greasemonkey, y ya hay al menos uno o dos hacks para permitir un comportamiento similar a Greasemonkey en Safari. Sugeriría ver si uno de ellos satisface tus necesidades primero.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top