joh*_*nny 48 javascript jquery
例如,我可以使用此脚本(来自mozilla教程):
<html>
<head>
<script type="application/javascript">
function draw() {
var canvas = document.getElementById("canvas");
if (canvas.getContext) {
var ctx = canvas.getContext("2d");
ctx.fillStyle = "rgb(200,0,0)";
ctx.fillRect (10, 10, 55, 50);
ctx.fillStyle = "rgba(0, 0, 200, 0.5)";
ctx.fillRect (30, 30, 55, 50);
}
}
</script>
</head>
<body onload="draw();">
<canvas id="canvas" width="150" height="150"></canvas>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
并将此JavaScript与jQuery的document.ready混合而不是依赖于onload?
Nic*_*ver 83
是的,它们都是 JavaScript,您可以使用适合该情况的任何功能.
在这种情况下,您可以将代码放在document.ready处理程序中,如下所示:
$(function() {
var canvas = document.getElementById("canvas");
if (canvas.getContext) {
var ctx = canvas.getContext("2d");
ctx.fillStyle = "rgb(200,0,0)";
ctx.fillRect (10, 10, 55, 50);
ctx.fillStyle = "rgba(0, 0, 200, 0.5)";
ctx.fillRect (30, 30, 55, 50);
}
});
Run Code Online (Sandbox Code Playgroud)
为什么MichalBE会被否决?他是对的-仅使用jQuery(或任何库)在页面加载时触发功能就太过分了,这可能使人们在移动连接上花费金钱并减慢用户体验。如果原始海报不想在body标签中使用onload(而且他很正确地不想这么做),则在draw()函数之后添加以下内容:
if (draw) window.onload = draw;
Run Code Online (Sandbox Code Playgroud)
或者,由西蒙·威利森(Simon Willison)进行,如果您想执行多个功能:
function addLoadEvent(func) {
var oldonload = window.onload;
if (typeof window.onload != 'function') {
window.onload = func;
} else {
window.onload = function() {
if (oldonload) {
oldonload();
}
func();
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
94318 次 |
| 最近记录: |