问题很简单,但很烦人。我有一个按钮,点击事件只是打开一个链接
HtmlPage.Window.Navigate(uri, "_blank");
但是一直被浏览器屏蔽。我搜索了很多。似乎每个人都在使用这种方法,但没有人提到新选项卡/窗口被阻止。所以我该怎么做?
更新
问题解决了。似乎要导航到外部网页,应该使用 HyperlinkButton。这不会被浏览器阻止。
“要允许用户导航到其他网页,您可以使用 HyperlinkButton 控件并将 NavigateUri 属性设置为外部资源,并将 TargetName 属性设置为打开一个新的浏览器窗口。” --- MSDN, Silverlight - External navigation
<HyperlinkButton NavigateUri="http://www.microsoft.com" Content="Go to Microsoft" TargetName="_blank" />
附注。 HtmlPage.PopupWindow 也被浏览器阻止。在我看来,如果没有用户手动禁用该块,HtmlPage.Window.Navigate 和 HtmlPage.PopupWindow 是无用的。
最佳答案
你考虑过吗System.Windows.Browser.HtmlPage.PopupWindow(uri, "_blank", null)
在 Silverlight 3 和 4 中?
除了最后一个空值,您还可以通过 HtmlPopupWindowOptions 设置一堆选项
关于Silverlight 打开 uri 链接被浏览器阻止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5964026/