Existem algumas maneiras de lidar com eventos com HTML / DOM. Não existe um caminho certo ou errado, mas modos diferentes são úteis em situações diferentes.
1: Existe uma definição no HTML:
<input id="clickMe" type="button" value="clickme" onclick="doFunction();" />
2: Adicionamos à propriedade DOM do evento em Javascript:
//- Using a function pointer:
document.getElementById("clickMe").onclick = doFunction;
//- Using an anonymous function:
document.getElementById("clickMe").onclick = function () { alert('hello!'); };
3: E há anexar uma função ao manipulador 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);
O segundo e o terceiro métodos permitem funções em linha / anônimas e ambos devem ser declarados após o elemento ter sido analisado no documento. O primeiro método não é XHTML válido porque o atributo onclick não está na especificação XHTML.
Os primeiro e segundo métodos são mutuamente exclusivos, ou seja, o uso de um (o segundo) substituirá o outro (o primeiro). O terceiro método permitirá que você anexe quantas funções desejar ao mesmo manipulador de eventos, mesmo que o primeiro ou o segundo método também tenham sido usados.
Muito provavelmente, o problema está em algum lugar da sua CapacityChart()função. Depois de visitar seu link e executar seu script, a função CapacityChart () é executada e os dois pop-ups são abertos (um é fechado conforme o script). Onde você tem a seguinte linha:
CapacityWindow.document.write(s);
Tente o seguinte:
CapacityWindow.document.open("text/html");
CapacityWindow.document.write(s);
CapacityWindow.document.close();
EDITAR
Quando vi seu código, pensei que você estivesse escrevendo especificamente para o IE. Como outros já mencionaram, você precisará substituir as referências document.allpor document.getElementById. No entanto, você ainda terá a tarefa de corrigir o script depois disso, portanto, recomendo que ele funcione pelo menos no IE primeiro, pois qualquer erro cometido ao alterar o código para funcionar em vários navegadores pode causar ainda mais confusão. Quando estiver funcionando no IE, será mais fácil saber se ele está funcionando em outros navegadores enquanto você atualiza o código.