Этот букмарклет будет добавлять новую копию скрипта к документу при каждом запуске. Для долгоживущих страниц (например, Gmail) это может привести к значительному использованию памяти, и если загрузка вашего скрипта имеет побочные эффекты, они будут происходить несколько раз. Лучшей стратегией было бы дать вашему сценарию идентификатор и сначала проверить наличие этого элемента, например ::
var s = document.getElementById('someUniqueId');
if (s) {
s.parentNode.removeChild(s);
}
s = document.createElement('script');
s.setAttribute('src', 'http://example.com/script.js');
s.setAttribute('type', 'text/javascript');
s.setAttribute('id', 'someUniqueId');
document.body.appendChild(s);
N.B. Другой вариант - сохранить существующий скрипт, если он уже есть в документе. Это может сэкономить некоторый трафик сервера, если ваш букмарклет часто используется между перезагрузками страницы. В худшем случае кто-то какое-то время использует более старую версию вашего скрипта; если вы не ожидаете, что оно будет часто меняться, это может быть хорошо.