2 つの Web ページがあります。それらは同じ .js ファイルを共有しますが、ファイルには、どちらか一方のページに対してのみ実行したいコードが含まれています。
各ページには、「page_1」または「page_2」のいずれかの一意の ID を持つ要素がある、以下のように処理できると思いました。js は、コードを実行する前に、この要素の存在をテストします。
ただし、page_1 では、page_2 IF ステートメント内のコードを実際には実行しませんが、関数 runStartFunction() は 2 回定義されているため、オーバーライドされます。
どうすればこれを回避できますか? もちろん、すべての関数に異なる名前を付けることができますが、多くのページがあり、ある時点で誤って同じ名前を使用する可能性があります。
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();