问题很简单但很烦人。我有一个按钮,点击事件只是通过链接打开一个网页。
HtmlPage.Window.Navigate(uri, "_blank");
但它一直被浏览器阻止。我搜索了很多,似乎每个人都在使用这种方法,但没有人提到新标签页/窗口被阻止的问题。那么我该怎么办呢?
更新
问题已解决。似乎要导航到外部网页,应使用HyperlinkButton。这不会被浏览器阻止。
"为了让用户导航到其他 web 页面,可以使用 HyperlinkButton 控件,并将 NavigateUri 属性设置为外部资源,将 TargetName 属性设置为打开新的浏览器窗口。" --- MSDN,Silverlight - 外部导航
<HyperlinkButton NavigateUri="http://www.microsoft.com" Content="Go to Microsoft" TargetName="_blank" />
PS. HtmlPage.PopupWindow在浏览器中也被屏蔽了。在我看来,如果用户不手动禁用阻止功能,则HtmlPage.Window.Navigate和HtmlPage.PopupWindow都是无用的。