現在選択されているタブの高さを取得し、その値を postMessage() で親 iframe に渡したい:
// ...
jQuery("#my-tabs").tabs({
selected: ran,
show: function( event, ui ) {
try
{
console.log(ui.panel);
var height = ui.panel.height();
if (window.postMessage && parentUrl != undefined)
parent.postMessage("height:" + height, parentUrl);
}
catch (c)
{
console.log(c.message);
}
}
});
ページが読み込まれ、ランダムに選択されたタブが表示されると、正常に動作します。
しかし、別のタブを選択すると、ui.panel はもう jQuery オブジェクトではないため、height() にアクセスするとクラッシュします。Object #<HTMLDivElement> has no method 'height'
UI 1.8.6 で jQuery 1.4.3 を使用していますが、この奇妙な動作については何も見つかりません。(jQuery('#example').bind('tabsshow' ... 同じこと)も試しました)