HTML / DOM ile olayları işlemenin birkaç yolu vardır. Doğru ya da yanlış gerçek bir yol yoktur, ancak farklı durumlarda farklı yollar yararlıdır.
1: HTML'de tanımlayan var:
<input id="clickMe" type="button" value="clickme" onclick="doFunction();" />
2: Javascript'te olayın DOM özelliğine ekleniyor:
//- Using a function pointer:
document.getElementById("clickMe").onclick = doFunction;
//- Using an anonymous function:
document.getElementById("clickMe").onclick = function () { alert('hello!'); };
3: Javascript kullanarak olay işleyiciye bir fonksiyon ekleniyor:
var el = document.getElementById("clickMe");
if (el.addEventListener)
el.addEventListener("click", doFunction, false);
else if (el.attachEvent)
el.attachEvent('onclick', doFunction);
Hem ikinci hem de üçüncü yöntemler satır içi / anonim işlevlere izin verir ve her ikisi de öğe belgeden ayrıldıktan sonra bildirilmelidir. İlk yöntem geçerli XHTML değildir çünkü onclick özelliği XHTML belirtiminde değildir.
1. ve 2. yöntemler birbirini dışlar, yani birini (2.) kullanmak diğerini (1.) geçersiz kılar. 3. yöntem, 1. veya 2. yöntem de kullanılmış olsa bile aynı olay işleyicisine istediğiniz kadar işlev eklemenize olanak tanır.
Büyük olasılıkla, sorun CapacityChart()
işlevinizde bir yerde yatıyor . Bağlantınızı ziyaret ettikten ve komut dosyanızı çalıştırdıktan sonra CapacityChart () işlevi çalışır ve iki açılır pencere açılır (komut dosyasına göre biri kapatılır). Aşağıdaki satıra sahip olduğunuz yer:
CapacityWindow.document.write(s);
Bunun yerine aşağıdakileri deneyin:
CapacityWindow.document.open("text/html");
CapacityWindow.document.write(s);
CapacityWindow.document.close();
EDIT
Kodunuzu gördüğümde özellikle IE için yazdığını düşündüm. Diğerlerinin de belirttiği gibi, referansları document.all
ile değiştirmeniz gerekecektir document.getElementById
. Ancak, yine de bundan sonra komut dosyasını düzeltme görevine sahip olacaksınız, bu yüzden çapraz tarayıcı çalışmak için kodu değiştirdiğiniz herhangi bir hata daha da karışıklığa neden olabileceği için en azından IE'de çalışmasını öneriyorum. IE'de çalıştıktan sonra, kodu güncellerken diğer tarayıcılarda çalışıp çalışmadığını söylemek daha kolay olacaktır.