Windows 7小工具弹出问题

时间:2011-01-21 20:58:40

标签: javascript windows-desktop-gadgets flyout

我的弹出窗口遇到了麻烦。我的小工具会发生什么,你双击一个组件,它将有一个相应的弹出窗口。但是,如果双击该弹出窗口中的该组件或任何其他可视组件,则弹出文档将返回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
}

1 个答案:

答案 0 :(得分:1)

我不太了解为Windows 7编写小工具,但对我而言,它看起来很像计时问题。当弹出窗口已经存在时,您更改file属性,告诉它加载新文件。无需等待,然后调用onFlyoutShow,它会尝试获取文档而文档尚未加载

  • 我的第一个想法是:设置文件时onShow事件不会触发吗?可能没有,或者你不会有if,但值得验证。
  • 如果不起作用,请在超时时调用onFlyoutShow。从一个长计时器开始,比如1000.然后缩短它,希望你可以降到0:setTimeout(onFlyoutShow, 0);
相关问题