我有兩個網頁。他們共享相同的.js文件,但該文件包含我只想執行其中一個或另一個頁面的代碼。在JS中定義兩次函數。根據網頁指示使用哪個定義
我想我可以像下面那樣處理它,每個頁面都有一個帶有唯一ID的元素,可以是「page_1」或「page_2」。然後js在執行代碼之前測試這個元素的存在。
但是,在page_1上,儘管它並未實際執行page_2 IF語句內的代碼,但函數runStartFunction()仍然被覆蓋,因爲它定義了兩次。
我該如何避免這種情況?很顯然,我可以給所有功能賦予不同的名稱,但是我有很多頁面,並且在某個時候我可能會意外地使用相同的名稱。
if (document.getElementById("page_1") != null){
alert("Page 1"); // executed, as expected
function runStartFunction(){
alert("what I want"); // not executed, but should be
}
}
if (document.getElementById("page_2") != null){
alert("Page 2"); // not executed, as expected
function runStartFunction(){
alert("what I don't want"); // executed, but shouldn't be
}
}
runStartFunction();
爲兩個不同的網頁混合了js代碼?我不認爲這是一個好主意。 –
這很常見。它們是同一站點內的頁面,它減少了加載scipt的調用次數。 – user984003
讓你的後端代碼根據它呈現的視圖來決定將要加載哪些js文件,這將減少你需要加載的整個JS。 –