フライアウトに問題があります。コンポーネントをダブルクリックすると、ガジェットに対応するフライアウト ウィンドウが表示されます。ただし、それまたはフライアウトを含む他のビジュアル コンポーネントをダブルクリックすると、フライアウト ドキュメントは null として返されます。これがなぜなのかわかりません。フライアウトを消して再度開くか、新しいフライアウトにすれば問題ありません。これが発生するのは、フライアウトが既に開いている場合のみです。これがなぜなのかについてのアイデアを探しています。
ダブルクリック コード:
Blah.prototype.ondblclick = function()
{
var me = this.parent;
if (System.Gadget.Flyout.show)
{
// flyout is already shown, make sure it shows our stuff
System.Gadget.Flyout.file = FLYOUT_FILE;
onFlyoutShow();
}
else
{
System.Gadget.Flyout.file = FLYOUT_FILE;
System.Gadget.Flyout.onShow = onFlyoutShow;
System.Gadget.Flyout.show = true;
}
System.Gadget.Flyout.onHide = onFlyoutHide;
function onFlyoutShow()
{
me.flyoutOpen = true;
me.updateFlyout();
}
function onFlyoutHide()
{
me.flyoutOpen = false;
}
};
実行コード:
Blah.prototype.updateFlyout = function ()
{
var flyoutDoc = System.Gadget.Flyout.document;
//flyoutDoc is null at this point
var info = flyoutDoc.getElementById("info");
info.innerHTML = "info: " + this.information;
//Error thrown: 'null' is null or not an object
}