强制iframe中的Silverlight Web部件链接在父窗口中打开

时间:2012-12-21 09:20:08

标签: silverlight iframe

在iframe中我将src设置为包含Silverlight Web部件的页面,它不生成任何锚元素,但在silverlight Web部件上有我们可以单击的文本,他们将重定向页面到一个新的网址。

问题是url总是在iframe而不是父窗口中打开。我尝试了以下事项:

<base target="_search" />
<base target="_top" />
<base target="_parent" />

在我的iframe页面的<head></head>内,没有""/但没有效果。

Silverlight是一个Sharepoint组件,因此我无法更改它或查看代码以了解它是如何打开链接的,所以我无能为力。

我非常想知道是否还有其他暴力方法强制在父窗口中打开链接?谢谢你的帮助。

1 个答案:

答案 0 :(得分:2)

如果这是我一直在努力的相同问题(在iFrame中的sharepoint中添加组织浏览器),今天这可能会有所帮助。在包含silverlight Web部件的页面上,通过不同页面上的iFrame查看,我覆盖了silverlight用来更改URL的window.open函数。下面我更改父窗口的URL,以便后续导航在主窗口中进行,iframe对用户完全透明。

这可能对你有用,没试过,但我假设一旦你到达顶部框架你就能找到你的其他iframe。在我的案例中,这也是跨域的。

<script>
//Window.open override - catches HTMLWindow.Navigate from silverlight hyperlink
window.open = function (open) {
    return function (url, name, features) {
        window.top.location = url;
        return false;
   };
}(window.open);
</script>