ここに私のセクションの私のコードhead
:
<script src="jquery-1.10.1.min.js"></script>
<script src="metro.js"></script>
<script src="draw.js"></script>
<script>
$(document).ready(function() {
var im = $('<img />')
.attr({id: 'metro', src:'metro.png'})
.appendTo($('body'))
.hide()
.on('load', function() {
okIm = true;
drawIfOk();
});
var bg = $('<img />')
.attr({id: 'back', src:'back.png'})
.appendTo($('body'))
.hide()
.on('load', function() {
okBg = true;
drawIfOk();
});
});
</script>
このコードは動的に 2 つの画像をダウンロードする必要があり、drawIfOk();
関数で両方の画像がダウンロードされているかどうかをテストします。もしそうなら、次のように、画像の幅と高さに基づいてキャンバスを作成しようとします:
function drawIfOk() {
if (!okIm) {
return;
}
if (!okBg) {
return;
}
initTest();
}
シンプルでしょ?
initTest();
関数は非常に単純になりました。
function initTest() {
gImgMetro = $('#metro')[0];
var bg = $('#back')[0];
/* Création du canvas */
gImgCanvas = $('<canvas />').attr({
width: bg.width,
height: bg.height
})[0];
gImgCtx = gImgCanvas.getContext('2d');
if(!gImgCtx) {
displayError("Impossible de récupérer le context du canvas");
return;
}
}
次に、IE はSafari、Chrome、Firefox、および Maxthon で動作するのにbg.width
とが 0 であるため、エラーを返します! bg.height
【IEについて愚痴をこぼさないように】
これを回避する方法は?