我有了很多這樣的功能的一個JavaScript腳本攔截雙重性質的JavaScript函數一樣的document.getElementById
document.getElementById(id)
的我不想腳本停止從該功能的任何不確定的回報,所以,解決的辦法是攔截與一個掛鉤類似功能的任何電話,我用這個代碼做攔截:
:var f = document.getElementById.bind(document);
document.getElementById = function (id) {
if(f(id) !== null) return true;
return false;
}
window.onload = function() {
document.getElementById('ajax').style.display = "block";
}
現在,這個腳本的第一個學位鏈接像這樣性質的工作大
document.getElementById("html").innerHtml = "Hello"
或
document.getElementById("txt").disabled = true;
和腳本將繞過功能,並沒有拋出虛假返回任何錯誤,但添加另一個propoerty像這樣的時候:
document.getElementById('ajax').style.display = "block";
腳本將拋出:
TypeError: document.getElementById(...).style is undefined
如果我們有什麼東西導致腳本死的時候從函數鉤子發現結果是null(沒有帶該id的DOM元素),這將解決問題,但我找不到除返回false之外的其他模塊或退出函數。
'所以解決方案是攔截任何與鉤類似功能的呼叫'我不同意這裏。然而,你的問題是你在遍歷一個對象樹之前沒有進行空值檢查。所以很確定,'document.getElementById'不能返回null,但沒有說它的子對象不能爲null。 – CollinD
你返回一個布爾值,如果它發現元素或不。如果它確實找到了需要返回該元素的元素,而不是true。 – ste2425