mootools1.2 - IE6でImage要素にElement.methodが効かない件について
2008年 6月 16日
前エントリで騒いでた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
くーちゃんは今日もお散歩いきました。
将人は散歩してますか。(^。^)y-.。o○
コメント by クーちゃんです(^v^) — 2008年 9月 19日 @ 9:04 PM