浏览器阻止了Silverlight打开的URI链接 [英] Silverlight open uri link being blocked by browser

查看:12
本文介绍了浏览器阻止了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆