mootools1.2 - IE6でImage要素にElement.methodが効かない件について

2008年 6月 16日

カテゴリー: weblog — タグ: , — masato kimura @ 12:18 AM

前エントリで騒いでたmootools1.2で「IEでElementをinjectできない」ですが、
IEだとネイティブのImage要素を生成して、とある要素にinjectしようとすると「オブジェクトでサポートされていないプロパティまたはメソッドです。」とか言われます。はい。僕が悪かったですね。
例えば―

var img = new Image();
img.inject(someElement);

とかするとエラーが出てしまう。

これだとjsネイティブのImageオブジェクトにないメソッドを呼んでしまう模様。
にゃので、new Image()の代わりにmootoolsのnew Element(’img’)かAssetsメソッドを利用して生成すればおk。
mootools拡張のメソッドやプロパティを要素に追加せねばならん(これは『$()』(ダラーファンクション)使用時にも追加される)。
ちなみにAssetsメソッドを利用すると、クロスブラウザでonLoadイベントが取得できるようになるのでむちゃ便利。
mootools1.11のバージョンだとAssetsはうまく動かんかったのでこれは助かる。

var img = new Asset.image("xxx/xxx.jpg", {title: 'myStyle', onLoad:'myFunc'});
function myFunc() {
img.inject(someElement);
}

こうすると、画像がロードされるまで要素のinjectは行われない。 :-)
このAssetsは1.2からはプラグインとして提供されてるので、
ちゃんとcoreに加えてmore builderで追加スクリプトもダウンロードせねばいけませぬ。

mootools Docs - Plugins/Assets
http://docs.mootools.net/Plugins/Assets

MooTools 1.2 More Builder
http://mootools.net/more

トラックバック URL

1 件のコメント »

  1. くーちゃんは今日もお散歩いきました。
    将人は散歩してますか。(^。^)y-.。o○

    コメント by クーちゃんです(^v^) — 2008年 9月 19日 @ 9:04 PM

コメントをどうぞ