ここはちょっと見せられない

ぜったいぜったい見せられない

excanvas.js と ready と onLoad と、沢山のcanvasを置いたらIEがえらい挙動不審に。

はっきり言って、kill InternetExplorer !!と叫んだが、しょうがない。

何がハマったって、沢山のcanvasをめいっぱい設置したら描画しなくなったんだよ。
で、描画はできるようになったので、手順を覚書しておく。

とりあえず、これはこのまんま、この順番で読み込む。

<script type="text/javascript" src="excanvas.min.js"></script>
<script type="text/javascript" src="radar.js"></script>

で、ここらへんで↓を参考にIE対策
http://javascript123.seesaa.net/article/197134393.html

function addOnload(func)
{
       try {
               window.addEventListener("load", func, false);
       } catch (e) {
               // IE用
               window.attachEvent("onload", func);
       }
}

を書いておいて、次にcanvasを書きたいところで

addOnload(function(){

    setitems = ["ほげ",1,2,3,4,5 ];  
    setitemlabels = ["A", "B", "C", "D", "E"]; 
    rc = new html5jp.graph.radar("canvasid");
    if( rc ) {
	items = [ setitems ];
	params = { Cap: setitemlabels }   
	rc.draw(items, params);
    }
}

を仕掛けておき、

<canvas width="100" height="100" id="canvasid"></canvas>

canvas を設置。

ただの覚書でこのとおりに書いてあるわけではなく省略したから
このままじゃ動かないかもしれないが、あとは知らない。

これをWordpressに組み込んだからややこしい話だったのであって、
普通に設置する分には、別になんの痛手も受けないと思う。

なんせ、ready で動かすとIEで挙動不審状態になる。たくさん描画すればするほど挙動不審が顕著。
onload で動かすしかないが、onloadをコードのあちこちに複数置くわけにいかない。一回しか動かないし、しかも一番最後のもので上書きされるから、一番最後に書いたグラフだけ表示されるとか意味分からん話になるし。


しかも描画はできるようになったが、描画するのにえらい時間かかる。
なんなの。FFだと一瞬で表示されるんだけど、IEだけうんうん唸ってるのよ。
おんなじCPU使ってるでしょ。早くしないさいよっ。

追記。
http://ie.hoge.in/