浏览器阻止了Silverlight打开的URI链接 [英] Silverlight open uri link being blocked by browser
本文介绍了浏览器阻止了Silverlight打开的URI链接的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
这个问题很简单,但很烦人。我有一个按钮,Click事件只是通过
打开一个链接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" />
PS。HtmlPage.PopupWindow也被浏览器阻止。在我看来,如果没有用户手动禁用阻止,HtmlPage.Window.Navigate和HtmlPage.PopupWindow都是无用的。
System.Windows.Browser.HtmlPage.Window.Eval推荐答案
您可以这样使用:
HtmlPage.Window.Eval("mywindowopener('http://www.google.com'")
调用一个脚本函数"mywindowopenser"并传递一个URL。然后在您的脚本中:
function mywindowopener(uri) {
window.loginDialog = window.open(uri, "popupwindow",
"height=320,width=480,location=no,menubar=no,toolbar=no");
}
"HtmlPage.Window.Eval"将绕过弹出窗口阻止程序,而"HtmlPage.Window.Invoke(mywindowOpener,url)"或"HtmlPage.PopupWindow"则不会。
这篇关于浏览器阻止了Silverlight打开的URI链接的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文