首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Silverlight打开新标签:使用IE关闭7-8

Silverlight打开新标签:使用IE关闭7-8
EN

Stack Overflow用户
提问于 2012-01-23 22:13:29
回答 2查看 1.2K关注 0票数 2

我正在使用此代码从我的Silverlight应用程序中打开一个新选项卡(单击按钮):

代码语言:javascript
运行
复制
HtmlPage.Window.Navigate(new Uri("\\SERVER\file.docx"), "_blank");

奇怪的是,它在IE9和Firefox上的工作就像一个护身符。但在IE8和IE7中,选项卡正在打开(持续1秒),并且会立即关闭(PopUp阻止程序被禁用)。如果我更新IE 9,这个问题就解决了。

我还测试了以下代码:

代码语言:javascript
运行
复制
HtmlPage.Window.Invoke("open", new object[] { "\\SERVER\file.docx", "popup" }); 

但我也有同样的问题。

EN

回答 2

Stack Overflow用户

发布于 2012-01-24 00:28:56

它与Silverlight没有任何关系,因为它只使用html桥

http://msdn.microsoft.com/en-us/library/cc645076(v=vs.95).aspx

因此,不同的行为源于浏览器中的javascript差异。

窗口/选项卡打开是不可靠的,因为它取决于实际的浏览器和实际用户的设置。

无论如何,你应该在SO或Google中寻找这些差异。

票数 0
EN

Stack Overflow用户

发布于 2012-01-24 16:31:52

感谢您的快速回答!

我知道JavaScript中的行为取决于所使用的浏览器。事实上,我希望找到一个可以在所有浏览器和配置中运行的代码。

我已经创建了这个,它似乎可以在IE 7,IE 8和IE 9中工作:

代码语言:javascript
运行
复制
private const string javascript = @"var popup = window.open('', 'blah') ; 
                                    if(popup.location != 'http://www.bing.com' ){
                                        popup.location = 'http://www.bing.com';
                                    }
                                    popup.focus();";

private void navigationButton_Click(object sender, RoutedEventArgs e)
{
    HtmlPage.Window.Eval(javascript);
} 

我知道,这不是很得体...此外,标签是开着的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8972971

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档