He encontrado la manera de funcionar
Código HTML:
<html>
<head>
<title>Untitled</title>
<style type="text/css">
div{width:50px;height:50px;border:1px solid blue;background-color:yellow}
</style>
<script type="text/javascript">
function ini() {
elem=document.createElement('div');
elem.id='div1';
elem.onclick=function() {alert(this.id)};
document.body.appendChild(elem);
}
</script>
</head>
<body onload="ini()">
<input type="button" onclick="document.getElementById('div1').onclick()">
</body>
</html>
Esto, aunque funciona, no es porque el HTMLDivElement tenga un metodo onclick(), sino porque tu antes lo has definido.
Así, si haces
Código HTML:
<html>
<head>
<title>Untitled</title>
<style type="text/css">
div{width:50px;height:50px;border:1px solid blue;background-color:yellow}
</style>
<script type="text/javascript">
function ini() {
elem=document.createElement('div');
elem.id='div1';
elem.nombrequetuquieras=function() {alert(this.id)};
document.body.appendChild(elem);
}
</script>
</head>
<body onload="ini()">
<input type="button" onclick="document.getElementById('div1').nombrequetuquieras()">
</body>
</html>
funcionará lo de que cuando aprietes el boton se ejecute la funcion nombrequetuquieras() del div.
Jugando con esto, si le pones a nombrequetuquieras() el nombre de onclick() estas matando dos pajaros de un tiro: si pulsas directamente sobre el div, estas llamando al evento "onclick" que tiene la etiqueta DIV de html, en cambio si pulsas sobre el boton, se esta ejecutando el metodo onclick()
QUE TU ACABAS DE CREAR en el objeto "elem" (del tipo HTMLDivElement).
Espero que me entiendas (no se ni siquiera si me entiendo yo...)