Un fichier javascript injection avec le plus petit nombre de caractères possibles?
-
21-08-2019 - |
Question
Je travaille sur un bookmarklet, et pensé que je jetais un défi:. Comment injecter un fichier javascript externe à partir d'un lien dans le moins de caractères possible
Voici le plus que je pouvais venir avec:
javascript:(function(d){d.body.appendChild(d.createElement('script')).src='URL'})(document)
C'est 88 caractères sans l'URL.
Peut le débordement de la pile javascript gourous ici faire mieux? J'accepterai la réponse travailler avec le plus petit nombre de caractères, alors mettez vos méninges!
(Une chose: le bookmarklet doit travailler dans tous les principaux navigateurs Cette est une solution intelligente, mais doesn. « t travailler dans tous les principaux navigateurs, car il renvoie une valeur.)
La solution
En supposant que String.prototype ne soit pas contaminé, nous pouvons sauver quelques caractères.
javascript:with(document)(body.appendChild(createElement('script')).src='URL')._
Autres conseils
javascript:void(with(document)body.appendChild(createElement('script')).src='URL')
79 caractères. Crédit Ben Blank pour l'utilisation de void
.
Je ne sais pas pourquoi vous envelopper cela dans une enceinte de fonction - il semble fonctionner parfaitement sans et est presque une douzaine de personnages plus courts:
javascript:void(document.body.appendChild(document.createElement('script')).src='URL')
En dehors de cela, cependant, votre mise en œuvre semble assez minimaliste.