так работает:
var dv = document.createElement('div');
dv.id = "d_s_m_menu";
document.body.appendChild( dv );
document.getElementById("d_s_m_menu").innerHTML += "<a href=\"https://de.ifmo.ru/servlet/distributedCDE?Rule=eRegister\">Электронный журнал</a><br/>";
document.getElementById("d_s_m_menu").innerHTML += "<a id=\"protocolOfChanges\" href=\"#\">Протокол изменений</a><br/>";
document.getElementById("protocolOfChanges").addEventListener('click',getProtocol, false);
И все нормально вызывается.
А "d_s_m_menu" это что за элемент?