Javascript 弹出窗口拦截器在单击silverlight按钮或Hyperlink按钮时阻止弹出窗口

Javascript 弹出窗口拦截器在单击silverlight按钮或Hyperlink按钮时阻止弹出窗口,javascript,silverlight,browser,cross-browser,popup,Javascript,Silverlight,Browser,Cross Browser,Popup,在我的ViewModel中,我准备动态url,然后按如下方式调用它 HtmlPage.Window.Navigate(new Uri(URL), "_blank"); 但它不起作用,所以我尝试从silverlight调用javascript,并在javascript内部调用window.open()方法。代码如下: HtmlPage.Window.Invoke("open_win", URL); function open_win(param1) { var win = wi

在我的ViewModel中,我准备动态url,然后按如下方式调用它

HtmlPage.Window.Navigate(new Uri(URL), "_blank");
但它不起作用,所以我尝试从silverlight调用javascript,并在javascript内部调用window.open()方法。代码如下:

HtmlPage.Window.Invoke("open_win", URL);
function open_win(param1) {
        var win = window.open(param1, 'ad', 'width=400,height=200,scrollbars=yes')
        win.focus();
    }
Javascript函数open_win如下所示:

HtmlPage.Window.Invoke("open_win", URL);
function open_win(param1) {
        var win = window.open(param1, 'ad', 'width=400,height=200,scrollbars=yes')
        win.focus();
    }
但它适用于IE,只有其他浏览器显示弹出窗口拦截器

我已经尝试了一个解决方案,以摆脱弹出窗口拦截器 我已经创建了一个虚拟的html按钮,并在OpenWin函数中触发了它的click,然后它也不工作了,但当我点击html按钮时,它工作得很好。所以请帮我用silverlight按钮做同样的事情

如果您有任何其他解决方案,打开新的浏览器窗口没有弹出窗口拦截器,然后也建议我


提前感谢。

请收听Javascript中的单击事件

如果使用Silverlight接收单击,则浏览器不知道发生了单击。它只是假设您的代码正在尝试打开一个新的浏览器。这就是为什么您的新窗口被归类为弹出窗口的原因


使用Javascript侦听DOM单击事件。浏览器会尊重你的新窗口。

弹出窗口拦截器阻止弹出窗口不是很重要吗?在我看来,一切都如期进行。。。除了IE,它失败了,我同意。除非IE知道Silverlight的click事件,否则它应该会阻止新窗口的创建。@nvoigt同样适用于aspx页面。当我们点击aspx页面上的按钮时,弹出窗口拦截器不会阻止弹出窗口,但当我们对silverlight执行相同操作时,弹出窗口拦截器会阻止弹出窗口。