人生ずっと勉強

人生ずっと勉強ですね。 https://twitter.com/KiyotakaGoto

[memo] [zepto] zepto で動的に script タグを埋め込む方法

ハマったのでメモ。

zepto で動的に script タグを埋め込むときは、以下のようなコードではリソースがロードされない。

// DOM には追加されるが http://arienaidomain.sonzaisi.nai/a.js のロードが始まらない
$('head').append( $('<script/>').attr('src', 'http://arienaidomain.sonzaisi.nai/a.js') );

解決方法は以下:

var rawScript = document.createElement('script');
var $script = $( rawScript );
$script
    .attr('type', 'text/javascript')
    .attr('src', 'http://arienaidomain.sonzaisi.nai/a.js')
;
$('head').append( rawScript );

生DOM API でエレメントを作り、それを zepto でラップしつつ属性を設定して、かつ生エレメントの方を zepto で append します。

なぜこれだとうまくいくのかは謎。
zepto のソース読まないと・・・。

参考: What's the Zepto equivalent of jQuery.getScript()? - Stack Overflow