Injetando um arquivo JavaScript com o menor número de caracteres possíveis?
-
21-08-2019 - |
Pergunta
Eu estou trabalhando em um bookmarklet, e pensei em derrubar um desafio:. Forma de injectar um arquivo javascript externo a partir de um link em tão poucos caracteres possível
Aqui está o mais curto eu era capaz de chegar a:
javascript:(function(d){d.body.appendChild(d.createElement('script')).src='URL'})(document)
Isso é 88 caracteres, sem a URL.
Pode o javascript gurus Stack Overflow aqui fazer melhor? Eu vou ser aceitar a resposta trabalhar com os personagens menor número, por isso, colocar no seu pensamento bonés!
(uma coisa:. O trabalho bookmarklet obrigação em todos os principais navegadores Este é uma solução inteligente, mas doesn 't trabalho em todos os principais navegadores, porque ele retorna um valor.)
Solução
Assumindo que String.prototype não está contaminada, podemos salvar alguns caracteres.
javascript:with(document)(body.appendChild(createElement('script')).src='URL')._
Outras dicas
javascript:void(with(document)body.appendChild(createElement('script')).src='URL')
79 caracteres. Crédito para Ben em branco para o uso de void
.
Eu não sei por que você está embrulho isso em um gabinete de função - parece funcionar perfeitamente sem e é quase uma dúzia de personagens mais curto:
javascript:void(document.body.appendChild(document.createElement('script')).src='URL')
Além de que, no entanto, sua implementação parece muito minimalista.