осторожнее с внешними инструментами
случайно нашёл текст «Surrogate Scripts vs Google Analytics», рассказывающий об интересной проблеме: иногда яваскрипт-программисты используют в коде дополнительные возможности внешних инструментов типа Google Analytics, и когда пользователь избирательно блокирует такие сборщики статистики, яваскрипт ломается. Например, если в обработчике onclick
кнопки первым делом вызывается urchinTracker(…)
, который определён в забаненном urchin.js, то остальной код обработчика просто не выполнится
статья предлагает решение такой проблемы со стороны пользователя при помощи некоторых фич Greasemonkey. Как обычно, того же эффекта можно добиться и в опере, но меня эта проблема не касается: я намеренно не блокирую счётчики, чтобы не ухудшать показатели оперы в статистике
а волнует меня эта проблема со стороны разработчика: нужно помнить не только о том, что яваскрипт может оказаться недоступен, но и том, что недоступной может стать только часть его. Конечно, в осторожности нужно знать меру, и границей здесь логично сделать границу между внутренними и внешними скриптами. Хотя мне и не по душе реализующий ту же концепцию разделения трюк Резига «выполнять этот код только при загрузке скрипта»
в общем, рекомендую:
window.urchinTracker && window.urchinTracker(…);