La inyección de un archivo JavaScript con los personajes menor número posible?
-
21-08-2019 - |
Pregunta
Estoy trabajando en un bookmarklet, y pensé en tirar abajo un desafío:. Cómo inyectar un archivo JavaScript externo desde un enlace en el menor número de caracteres posible
Esta es la más corta que era capaz de llegar a:
javascript:(function(d){d.body.appendChild(d.createElement('script')).src='URL'})(document)
Eso es 88 caracteres sin la URL.
¿Puede el desbordamiento de pila javascript gurús aquí hacer mejor? Voy a estar aceptando la respuesta trabajar con los caracteres menor cantidad, por lo que pongo en sus tapas de pensamiento!
(Una cosa: el bookmarklet debe trabajar en todos los navegadores Este es una solución inteligente, pero doesn. 't funciona en todos los navegadores, ya que devuelve un valor.)
Solución
Si se asume que String.prototype no está contaminada, podemos ahorrar algunos caracteres.
javascript:with(document)(body.appendChild(createElement('script')).src='URL')._
Otros consejos
javascript:void(with(document)body.appendChild(createElement('script')).src='URL')
79 caracteres. Crédito Ben en blanco para el uso de void
.
No estoy seguro de por qué está envolviendo esta función en un recinto - que parece que funciona perfectamente sin y es casi una docena de personajes más cortos:
javascript:void(document.body.appendChild(document.createElement('script')).src='URL')
Aparte de eso, sin embargo, su aplicación se ve bastante minimalista.