增加多個window.onload事件
P粉555696738
2023-08-22 18:09:32
<p>在我的ASP.NET使用者控制項中,我正在為<code>window.onload</code>事件新增一些JavaScript程式碼:</p>
<pre class="brush:php;toolbar:false;">if (!Page.ClientScript.IsStartupScriptRegistered(this.GetType(), onloadScriptName))
Page.ClientScript.RegisterStartupScript(this.GetType(), onloadScriptName,
"window.onload = function() {myFunction();};", true);</pre>
<p>我的問題是,如果<code>onload</code>事件中已經有內容,那麼這段程式碼就會覆蓋它。我該如何讓兩個使用者控制項都能在<code>onload</code>事件中執行JavaScript程式碼? </p>
<p><strong>編輯:</strong>謝謝關於第三方函式庫的資訊。我會記住的。 </p>
仍然有一個醜陋的解決方案(遠不如使用框架或
addEventListener
/attachEvent
)是保存目前的onload
事件:請注意,像jQuery這樣的框架將提供一種在DOM準備好時執行程式碼的方法,而不是在頁面載入時執行。
DOM準備好意味著你的HTML已經載入完成,但是外部元件(如圖片或樣式表)尚未載入完成,這使得你可以在載入事件觸發之前被呼叫。
大部分提出的「解決方案」都是針對Microsoft的,或是需要龐大的函式庫。這是一個好的方法。它適用於符合W3C標準的瀏覽器和Microsoft IE。