<!DOCTYPE html>
<html>
<head>
<script>
function boom()
{
  var table = document.getElementById("table");

  var newCaption = document.createElement('caption');
  newCaption.appendChild(document.createTextNode("THIS SHOULD BE VISIBLE"));
  table.insertBefore(newCaption, table.firstChild);
}
</script>

</head>
<body onload="boom();">

<table id="table"><tbody></tbody></table>
</body>
</html>