このコードは、ほとんどすべてのブラウザでうまく機能する、はるかに大きなスクリプトのコアです。それでも、IEでは機能しませんでした。だから私はそれを取り除いて、image.onloadがIEで起動していないことを発見しました。
私はいくつかの調査を行い、それが画像キャッシュの問題になるのを防ぎました。1つは、エラーは何かがキャッシュされる前に最初に発生し、さらに重要なことに、onloadイベントがsrcの前に付加されます。
また、IE互換の方法でonloadイベントを添付していることも合理的に確信しているので、何が原因でアラートが表示されないのでしょうか。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script type="text/javascript">
function generate(){
var imageGen = document.createElement("img");
imageGen.setAttribute('onload',"primer()");
imageGen.setAttribute('src', "http://www.google.co.uk/images/srpr/logo3w.png");
document.getElementById('image').appendChild(imageGen);
}
function primer() {
alert("here now");
}
</script>
</head>
<body onload="generate()">
<div id="image">
</div>
</body>
</html>
残念ながら私はIE8にしかアクセスできないので、他のバージョンでもIE8が存続するかどうかはわかりませんが、修正する必要があります。