亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

有沒有辦法讓我的 JavaScript 文件不在 html 頁面中運行?

有沒有辦法讓我的 JavaScript 文件不在 html 頁面中運行?

米琪卡哇伊 2023-06-15 16:12:28
我有兩個 html 文件(index.html和project.html),index.html包含或需要兩個 javascript 文件(main.js和index.js)。main.js包含兩個 html 文件所需的功能。而index.js具有只有index.html需要的功能。所以我說index.html-->( main.js,index.js ) 和 project.html-->( main.js)。問題是,當我打開 project.html 時,我在index.js中調用的 DOM 元素拋出錯誤,指出該元素為空。問題是導致錯誤的 DOM 元素僅在index.html而不是project.html中創建,但項目不應該調用或知道該函數。索引.html<script src="asset/javaScript/javaScript_for_index/main.js" defer type="module"></script> <script src="asset/javaScript/javaScript_for_index/index.js" defer type="module"></script>項目.html<script src="asset/javaScript/javaScript_for_index/main.js" defer type="module"></script>這是我在檢查器中得到錯誤的地方。請注意,錯誤來自 project.html ,它是由index.js引起的我知道這有點令人困惑,但這是我能解釋的最好的。
查看完整描述

4 回答

?
UYOU

TA貢獻1878條經驗 獲得超4個贊

兩件事情:

  1. 請注意,所有元素<script>都應出現在結束元素之前的標記中</body>。

  2. 在每個頁面上,引用<script>該頁面所需的內容

例子:

index.html

<script src="main.js"></script>
<script src="index.js"></script>
</body>
</html>

project.html

<script src="main.js"></script>
</body>
</html>


查看完整回答
反對 回復 2023-06-15
?
慕標琳琳

TA貢獻1830條經驗 獲得超9個贊

在我們做任何事情之前,先清除緩存。(重要的)

如果你確定你做的一切都是正確的,就像@Rounin 回答建議的那樣,然后再次運行你的代碼,檢查以確保你的錯誤來自 index.js,如果是,那么你正在以某種方式將 index.js 注入頁面不知道,(可能在你身體中間的某個地方或其他地方),你可能需要做一個比僅僅詢問更徹底的調試。而且很可能您沒有告訴我們所有事情,因為您可能沒有意識到這一點。

嘗試在您的 project.html 腳本中搜索任何出現的 index.js。(Ctrl+F)

現在,如果一切都失敗了并且你必須快速前進,那么你可以在你的 index.html 和 index.js 腳本上嘗試這個 hack。

索引.html

    <script> var page = "index" </script>

把它放在第 1 行之前,因為我不知道哪一行可能會引起你的問題

然后在index.js上用 if 語句包裝你的代碼(即放置 if 語句來檢查頁面是否=“索引”以防止不需要的代碼在其他頁面上運行

例如:

    If (typeof page !== undefined && page == "index") { 
            // allow code to execute
    }

這是一個骯臟的 hack,但它可能會讓你繼續前進,直到你找到更有經驗的工程師來調試你的代碼......


查看完整回答
反對 回復 2023-06-15
?
慕婉清6462132

TA貢獻1804條經驗 獲得超2個贊

例子:


index.html 需要 main.js 和 index.js project.html 只需要 main.js 中的某個函數


所以 main.js


function functionsThatIndexNeeds() {

alert('Im in index.html!!!');

}


function functionsThatProjectNeeds() {


alert('IM IN PROJECTS~~~');

}

索引.html


<script>functionsThatIndexNeeds()</script>


項目.html


<script>functionsThatProjectNeeds</script>

關鍵是只調用每個 HTML 文件需要的函數。


告訴我這對你有用嗎!:)


查看完整回答
反對 回復 2023-06-15
?
aluckdog

TA貢獻1847條經驗 獲得超7個贊

顯然,您必須在 main.js 中引用 index.html 中的 DOM 部分。停止引用那些,你會沒事的。請注意,如果我DIV在 index.html 中有foo一個 project.html 沒有的 ID,那么您可以使用document.querySelectorAll()函數來檢查該元素是否存在(可以查看length,從中返回,以及其他選項,例如undefined),并且如果它不存在則做出反應。這可以幫助您區分 index.html 和 project.html 中的項目。



查看完整回答
反對 回復 2023-06-15
  • 4 回答
  • 0 關注
  • 169 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號