Обычно "не работает" имеет симптомы,
что выдает консоль ошибок?
пишется ли ваше console.log("321"); или до него не доходит?
где кусок кода до вызова и после вызова? Может сюда вообще не доходит по каким-то ифам?
Перед и после обработчика добавьте console.log("start"); console.log("end");, будет хоть понятно доходит сюда код или нет.
Максим Жаров: У него код в расширении для хрома, + весь код не приведен, дан кусок вырванный из контекста, уверен что ваш код сработает и у него, вопрос как устроено расширение и какой код препятствует работе этого куска.
Куда и как добавляете элемент и где у вас скрипт? Возможно, вы путаете background script и content script, или просто элемент добавляете так, что не успевает выстроиться DOM.