2016-09-13 113 views
-2

我在網站上同時內聯js和外部js。等待內聯js加載/完成

我有問題,因爲在外部js我需要變量是內聯js中定義的,但令我驚訝的是外部js發生很快,並大聲說我的變量未定義。

它適用於如果我使用$(document).ready(),但這對我來說已經太遲了。我需要類似的東西,但不那麼「強大」,只等內聯js完成,而不是等待DOM完成。

是否有函數等待內聯js完成,或者至少是爲了定義變量?

唯一我能想到的就是使用定時器,如果需要定義的變量定期等待,但這顯然是一個難看的解決方案。

+2

爲什麼document.ready太遲了? –

+0

你可以在你的內聯js中使用回調,或重新安排你的js的順序。但是,在使用jQuery時,最好的做法是將代碼包裝在'ready'處理程序中。 – empiric

+0

對於外部JS,你指的是你擁有的外部文件,對嗎?我不推薦內聯JS。你能解釋爲什麼你使用外部和內聯JS? – Tom

回答

1

「內嵌JavaScript準備就緒」沒有單獨的事件,因爲腳本標記只是一個標記,因此它可以出現在文檔中的任何位置。即使在最後。所以,在我看來,你只有兩種選擇(一個真正的)是:

  1. 使用DOM ready事件
  2. 重新組織你的代碼刪除此加載時間依賴性。這讓我想:不包括鏈接到你的外部JS只是之後你的內聯塊足夠了嗎?