Iniettando un file JavaScript con il minor numero di caratteri possibili?
-
21-08-2019 - |
Domanda
Sto lavorando su un bookmarklet, e ho pensato di buttare giù una sfida:. Come iniettare un javascript file esterno da un collegamento nel minor numero possibile di caratteri
Ecco il più breve sono stato in grado di venire con:
javascript:(function(d){d.body.appendChild(d.createElement('script')).src='URL'})(document)
Questo è 88 caratteri, senza l'URL.
Può lo Stack Overflow javascript guru qui fare di meglio? Sarò accettando la risposta a lavorare con i personaggi più basso in modo da mettere sul vostro pensiero tappi!
(Una cosa: il bookmarklet deve lavorare in tutti i principali browser Questa è una soluzione intelligente, ma doesn. 't lavorare in tutti i principali browser, perché restituisce un valore.)
Soluzione
Supponendo che String.prototype non è contaminato, siamo in grado di salvare alcuni caratteri.
javascript:with(document)(body.appendChild(createElement('script')).src='URL')._
Altri suggerimenti
javascript:void(with(document)body.appendChild(createElement('script')).src='URL')
79 caratteri. Credit Ben Blank per l'uso di void
.
Non sono sicuro che il motivo per cui si sta avvolgendo questo in un involucro funzione - sembra funzionare perfettamente senza ed è quasi una dozzina di caratteri più brevi:
javascript:void(document.body.appendChild(document.createElement('script')).src='URL')
A parte questo, però, l'implementazione sembra piuttosto minimalista.