首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

JSP/JS 判斷後端傳值失效?壹招修復 window.onload 拼寫錯誤

     編輯:程式設計疑難解答

在 JSP 頁面中嘗試根據後端傳遞的 ${requestScope.err} 值判斷是否彈窗提示,代碼寫在 window.onclod 中卻完全不生效。

問題定位

window.onclod = function() {  // 拼寫錯誤:onclod ≠ onload
    if ("${requestScope.err}" == 0) {
        alert("失敗");
        // ...
    }
};

根因: window.onclod 不是任何標準事件,瀏覽器根本不會觸發它。正確的頁面載入完成事件是 window.onload(全小寫 L)。

修正代碼

window.onload = function() {
    // 注意:EL 表達式在 JSP 編譯階段已解析為具體值,這裡直接比較字串/數字
    var errValue = "${requestScope.err}";  // 例如輸出為 "0" 或 "1"
    if (errValue === "0" || errValue === 0) {  // 建議同時兼容字串與數字
        alert("失敗");
        hidden(document.getElementById("qipao"), 5, -0.01);
    }
};

補充最佳實踐

  • 優先使用 addEventListener:window.addEventListener('load', fn) 可綁定多個處理器,不會互相覆蓋
  • 判斷邏輯嚴謹化:後端傳值建議統一為數字型別,前端用 Number(errValue) === 0 比較
  • 避免內聯事件屬性:現代開發推薦在 <script> 統一綁定,便於維護與壓縮

一個字母之差(l vs c),導致整段邏輯靜默失效。養成複製標準事件名稱、控制台檢查錯誤的習慣,能避開 90% 此類低級錯誤。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved