我的飞行控制器出了点问题。我的小工具是这样的:双击一个组件,它就会有一个相应的弹出窗口。但是,如果双击该弹出按钮或任何其他带有弹出按钮的可视组件,则弹出按钮文档将返回为空。我不知道为什么会这样,如果您让弹出按钮离开并重新打开它或重新打开它,这是可以的。只有当弹出型按钮已经打开时,才会发生这种情况。我正在寻找一些关于为什么会这样的想法。
双击代码:
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
}发布于 2011-01-22 05:20:38
我对为windows7编写小工具所知不多,但对我来说,这看起来很像是一个时机问题。当弹出型按钮已经存在时,您可以更改file属性,该属性告诉它加载一个新文件。不需要等待,然后调用onFlyoutShow,它会尝试获取文档,但是文档还没有加载。
onShow事件不会触发吗?可能不会,或者你不会有if,但值得验证。onFlyoutShow。从一个很长的计时器开始,比如1000。然后缩短它,希望你能降到0:setTimeout(onFlyoutShow, 0);https://stackoverflow.com/questions/4763738
复制相似问题