Hay algunas formas de manejar eventos con HTML / DOM. No hay una forma correcta o incorrecta real, pero diferentes formas son útiles en diferentes situaciones.
1: Lo está definiendo en el HTML:
<input id="clickMe" type="button" value="clickme" onclick="doFunction();" />
2: Hay que agregarlo a la propiedad DOM para el evento en Javascript:
//- Using a function pointer:
document.getElementById("clickMe").onclick = doFunction;
//- Using an anonymous function:
document.getElementById("clickMe").onclick = function () { alert('hello!'); };
3: Y se adjunta una función al controlador de eventos usando Javascript:
var el = document.getElementById("clickMe");
if (el.addEventListener)
el.addEventListener("click", doFunction, false);
else if (el.attachEvent)
el.attachEvent('onclick', doFunction);
Tanto el segundo como el tercer método permiten funciones en línea / anónimas y ambos deben declararse después de que el elemento se haya analizado del documento. El primer método no es válido XHTML porque el atributo onclick no está en la especificación XHTML.
Los métodos primero y segundo son mutuamente excluyentes, lo que significa que usar uno (el segundo) anulará al otro (el primero). El tercer método le permitirá adjuntar tantas funciones como desee al mismo controlador de eventos, incluso si el primer o segundo método también se ha utilizado.
Lo más probable es que el problema se encuentre en algún lugar de su CapacityChart()función. Después de visitar su enlace y ejecutar su script, se ejecuta la función CapacityChart () y se abren las dos ventanas emergentes (una se cierra según el script). Donde tienes la siguiente línea:
CapacityWindow.document.write(s);
Pruebe lo siguiente en su lugar:
CapacityWindow.document.open("text/html");
CapacityWindow.document.write(s);
CapacityWindow.document.close();
EDITAR
Cuando vi su código pensé que lo estaba escribiendo específicamente para IE. Como otros han mencionado, deberá reemplazar las referencias document.allcon document.getElementById. Sin embargo, aún tendrá la tarea de corregir el script después de esto, por lo que recomendaría que funcione al menos en IE primero, ya que cualquier error que cometa al cambiar el código para que funcione en varios navegadores podría causar aún más confusión. Una vez que esté funcionando en IE, será más fácil saber si está funcionando en otros navegadores mientras actualiza el código.