function select(e) {
var ev = e || window.event;
var target = ev.target || ev.srcElement;
var typeName = target.innerText; // Firefox 不支援 innerText
// ...
}
現象:Firefox 下 `target.innerText` 為 `undefined`,導致後續邏輯失敗。
var typeName = target.textContent || target.innerText; // 兼容所有瀏覽器
// 或
var typeName = target.innerHTML; // 若需保留 HTML 標簽
若頁面已引入 jQuery,**不要手寫兼容代碼**。jQuery 統一封裝 `event.target`、`event.currentTarget`、`event.which` 等。
// 原生綁定改為 jQuery 綁定
$('#yourSelect').change(function(e) {
var target = e.target; // 已統一
var typeName = $(target).text(); // 直接取文本,自動兼容
// ...
});
function getTarget(e) {
e = e || window.event;
return e.target || e.srcElement;
}
function getText(node) {
return node.textContent || node.innerText || '';
}