0

在我的 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按钮做同样的事情。

如果您有任何其他解决方案可以在没有弹出窗口阻止程序的情况下打开新的浏览器窗口,那么也建议我。

提前致谢。

4

1 回答 1

0

在 Javascript 中侦听 Click 事件。

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

使用 Javascript 监听 DOM 点击事件。然后浏览器将尊重您的新窗口。

于 2013-03-20T07:25:38.590 回答