Как раз только что создал похожий вопрос, и сразу понял что сглупил...
Можно использовать bugsnag.com для подобных вещей.
Там можно вручную слать ошибку на сервер, в которой собственно будет и IP и время и т.д и т.п.
Подключается буквально одной кнопкой.
Повесить вызов Bugsnag.notify на кнопку и слать дополнительные кастомные поля (например имя пользователя или фазу луны) займет буквально 10мин.
PS
Не обратил внимание что вопрос про интранет. Но ответ оставлю, так как заголовок с интранет не имеет связи, и другим будет полезно.
Выглядит нормально. Для "совместимости", лучше использовать что-то вроде https://ru.wikipedia.org/wiki/JSDoc
Чтобы IDE могли нормально распарсить коментарии, и по ним потом можно было сгенерить документацию.
Проблема в следующем:
- Шаг 1: вызывается imports в init.js
- Шаг 2: вызывается imports в support_html5
- Шаг 3: вызывается imports в espionage
Проблема в том, что выполнение onSuccess привязанно к onload событию, которое происходит независимо от того загружены ли все зависимости или нет.
Таким образом при загрузке support_html, функция onSuccess из init.js выполнится в любом случае, а вот функция onSuccess из support_html не выполнится, так как у него есть зависимости.
И тогда получается случай, когда support_html загружен, но его тело не выполненно, и соответсвенно объекта support_html не существует, так как до сих пор подгружаются зависимости support_html5
Лечить это нужно другой системой вызова onSuccess/onError функций.
PS
Можно перестать велосипедить, и использовать requirejs(как я посоветовал ранее) для загрузки зависимостей.