Если вы введете следующий код в своей консоли, вы сразу увидите предупреждение:
document.head.addEventListener("DOMContentLoaded", getMeta(), true);
function getMeta() {
alert("test");
}
Причина в том, что функция будет вызвана немедленно. Чтобы изменить это, удалите (), а также я считаю, что событие запускается на самом документе (я не уверен, что событие проходит по всему документу, и useCapture = true будет работать). Так что используйте что-то вроде:
document.addEventListener("DOMContentLoaded", getMeta, true);
Он все равно будет срабатывать только один раз при загрузке документа. Если вам нужно запустить функцию после какого-то другого события, вам нужно добавить прослушиватель для этого события.
Если вы хотите вызывать свою функцию после изменения документа (включая навигацию ajax), вы можете использовать Наблюдатели мутаций .