Внедрить файл JavaScript с наименьшим количеством возможных символов? - PullRequest
3 голосов
/ 12 мая 2009

Я работаю над букмарклетом и решил бросить вызов: как вставить внешний файл javascript из ссылки, используя как можно меньшее количество символов.

Вот самое короткое, что я смог придумать:

javascript:(function(d){d.body.appendChild(d.createElement('script')).src='URL'})(document)

Это 88 символов без URL.

Могут ли гуру javascript в Stack Overflow работать лучше? Я приму рабочий ответ с наименьшим количеством символов, так что наденьте свои мыслительные заглушки!

(Одно: букмарклет должен работать во всех основных браузерах. Этот является разумным решением, но не работает во всех основных браузерах, поскольку возвращает значение.)

Ответы [ 3 ]

6 голосов
/ 12 мая 2009
javascript:void(with(document)body.appendChild(createElement('script')).src='URL')

79 символов. Кредит Бен Бланк за использование void.

5 голосов
/ 12 мая 2009

Я не уверен, почему вы заключаете это в корпус функции - кажется, что он прекрасно работает без и почти на дюжину символов короче:

javascript:void(document.body.appendChild(document.createElement('script')).src='URL')

Кроме того, ваша реализация выглядит довольно минималистично.

1 голос
/ 09 июня 2009

Предполагая, что String.prototype не загрязнен, мы можем сохранить некоторые символы.

javascript:with(document)(body.appendChild(createElement('script')).src='URL')._
...