Saya memiliki naskah ini:
function postBackByObject(e) {
var o = window.event.srcElement || e.target;
if (o.tagName == "INPUT" && o.type == "checkbox") {
__doPostBack("", "");
}
}
Saya menggunakan skrip ini dengan onclick="postBackByObject();"
.
tetapi di Firefox 21 saya mendapatkan kesalahan ini:
TypeError: window.event tidak terdefinisi
apa yang salah dengan saya?
Itu karena memang demikian. window.event
adalah untuk versi IE yang lebih lama.
Cara umum untuk melakukan ini adalah:
function postBackByObject(e) {
e = e || window.event;
var o = e.srcElement || e.target;
// ...
}
Anda melampirkan peristiwa sebaris onclick="postBackByObject();"
Coba lewati this
(target kejadian) ke onclick="postBackByObject(this);"
Ubah fungsi Anda untuk menangani perubahan ini:
function postBackByObject(e) {
if (e.tagName == "INPUT" && e.type == "checkbox") {
__doPostBack("", "");
}
}
Alternatif yang lebih baik adalah melampirkan event menggunakan addEventListener
Jika markup Anda terlihat seperti:
<div id="TvCategories" onclick="postBackByObject(this);" />
maka
document.getElementById('TvCategories').addEventListener('click', postBackByObject);
Fungsi postBackByObject
Anda tetap tidak berubah ketika menggunakan pendekatan ini.