porque se supone que todo lo hagas en la misma función, hay un defase entre lo que se carga cuando el DOM NO está cargado, y también pretendes convertir el BBcode en un campo de texto (input) que modificas posteriormente
Código Javascript
:
Ver originalfunction sacarhtml(){
var codigo = document.getElementById("campo").value
var html = bbcodeParser.bbcodeToHtml(codigo);
alert (html);
}