【发布时间】:2013-03-20 06:09:27
【问题描述】:
在我的 ViewModel 中,我正在准备动态 url,然后按如下方式调用它。
HtmlPage.Window.Navigate(new Uri(URL), "_blank");
但它不起作用,所以我尝试从 silverlight 调用 javascript,并在 javascript 内部调用了 window.open() 方法。代码是这样的:
HtmlPage.Window.Invoke("open_win", URL);
而Javascript函数open_win是这样的:
function open_win(param1) {
var win = window.open(param1, 'ad', 'width=400,height=200,scrollbars=yes')
win.focus();
}
但它仅适用于 IE,所有其他浏览器都显示弹出窗口阻止程序。
我尝试了另一种解决方案来摆脱弹出窗口阻止程序 我创建了虚拟 html 按钮并在 open_win 函数中触发了它的点击,然后它也没有工作,但是当我点击 html 按钮时它工作正常。所以请帮我用silverlight按钮做同样的事情。
如果您有任何其他解决方案可以在没有弹出窗口阻止程序的情况下打开新的浏览器窗口,那么也建议我。
提前致谢。
【问题讨论】:
-
弹出窗口阻止程序阻止弹出窗口的目的不是吗?在我看来,一切都按预期工作......除了 IE,它失败了。
-
我同意。除非 IE 知道 Silverlight 的点击事件,否则它应该阻止新窗口的创建。
-
@nvoigt 同样适用于 aspx 页面。当我们单击 aspx 页面上的按钮时,弹出窗口阻止程序不会阻止弹出窗口,但是当我们对 silverlight 执行相同操作时,它会阻止。
标签: javascript silverlight browser cross-browser popup