Pergunta

Eu quero algum código JavaScript desenvolvido pessoalmente para executar sempre que eu carregar uma página no Safari. Parece que AddBlock para o Safari faz isso. Alguém sabe como fazer isso?

Safari não é extensível. Não há nenhum quadro addon para isso. Mas ainda há adblock e verious outros complementos disponíveis para ele, embora Webkit e Safari desenvolvedores da Apple desencorajar os usuários de usá-los, chamando-os de 'hacks' binários. Parece que alguns desses complementos usar InputManager, que não está documentada em tudo em qualquer lugar, pelo menos por não para como as pessoas estão usando-o para carregar scripts no Safari. Eu acho que eu vou ter para trás engenheiro para ver como AddBlock faz isso, mas antes de eu fazer, eu pensei que eu iria pedir ao redor aqui. Alguém sabe?

Foi útil?

Solução

gerentes de entrada são uma maneira comum (ab) usado de injetar código arbitrário em tempo de execução de outro aplicativo. Uma vez que você está lá, você tem que fazer engenharia reversa suficiente do próprio aplicativo para descobrir como obter o comportamento desejado; Normalmente, que envolve método swizzling para substituir partes do aplicativo que você está cortando. Não é documentado porque não há nenhuma API para documento, mas você pode aprender sobre as peças individuais (como escrever um gerente de entrada em geral, como método swizzling em obras Objective C, como usar ferramentas como classe-dump) e, em seguida, colocar tudo juntos.

O que você está descrevendo soa como Greasemonkey, porém, e há pelo menos um ou dois hacks já lá fora, para permitir Greasemonkey-like comportamento no Safari. Eu sugiro ver se um deles atenda às suas necessidades em primeiro lugar.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top