簡體   English   中英

當已經有一個window.load == function(){}時如何為畫布添加keyDown事件

[英]When there is already a window.load==function(){} how to add keyDown event for a canvas

我使用了一些JS API來制作一些圖表。 在代碼中已經有window.onload = function (){} ,現在我想要畫布的keydown事件。 有人知道在哪里添加代碼嗎? 看起來很愚蠢,但是我只是無法獲得有關window.onload對js動作的影響的信息。

您可以改用DOM2處理程序:

window.addEventListener("load", function() { /*...your code here...*/}, false);

在IE8和更早版本上,您必須處理以下事實:他們沒有它:

if (window.addEventListener) {
    window.addEventListener("load", function() { /*...your code here...*/}, false);
}
else if (window.attachEvent) {
    window.attachEvent("onload", function() { /*...your code here...*/});
}

DOM2處理程序與舊的DOM0處理程序並排放置,而不干擾它們。 他們提供的最大優勢是您可以為同一個事件使用多個處理程序,因此不會出現(已經有一個處理程序)這個問題。


旁注:在所有外部資源都已完全加載(或加載失敗)之后, window上的load事件實際上發生在頁面加載過程的后期 99%的時間, 最好將代碼放在scriptbody末尾,即 </body>標記之前,如下所示:

<!-- ...content... -->
<script src="yourscript.js"></script>
</body>
</html>

然后,您根本不需要鈎住load事件,因為上面標記所定義的所有DOM元素已經存在。 只需立即運行您的代碼即可。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM