从Windows 7小工具中嵌入的Iframe中访问父DOM /函数

我有以下问题,我创建一个Windows 7小工具,它使用Iframe加载内容。我完全控制Iframe的内容,我想做的是,在父级调用一个函数(Windows 7小工具html文档),从这个iframe中,或者甚至在iframe中触发弹出窗口,当有hover在链接或某物上时。
任何帮助是极大的赞赏。
谢谢
在此处输入图像描述

虽然最初声称Windows桌面小工具被排除在同源策略的限制之外,但仅适用于XMLHttpRequests。 如果指向www上的页面,则会阻止框架页面和托管小工具之间的任何通信。 如果是这种情况,那么您可以使用依赖于更改最顶层窗口的hash的跨域通信方法。 从框架内部,你会做这样的事情:

 window.top.location.hash = "#ShowFlyout"; 

然后,在小工具的代码中,您将拥有以下内容:

 window.setInterval(function () { if (window.location.hash == "#ShowFlyout") { window.location.hash = ""; System.Gadget.Flyout.file = "flyout.htm"; System.Gadget.Flyout.show = true; } }, 100); 

我现在没有自己的Windows机器来测试它,但你可以尝试一下。

如果iframe指向本地机器上的html文档,那么您应该能够作为最顶层窗口对象(即小工具)的成员访问全局System变量,如下所示:

 var System = window.top.System; System.Gadget.Flyout.file = "some.htm"; System.Gadget.Flyout.show = true; 

或者,假设您可以控制弹出窗口的内容,您可以使用jQuery在所有链接上设置事件处理程序(因为您标记了它):

 $("a", iframe.contentWindow.document).click(function () { System.Gadget.Flyout.file = this.href; System.Gadget.Flyout.show = true; });