2012-01-23 49 views
2

我使用这个代码从我的Silverlight应用程序(在点击按钮),打开一个新的标签:SilverLight的打开新的标签页:关闭与IE 7-8

HtmlPage.Window.Navigate(new Uri("\\SERVER\file.docx"), "_blank"); 

奇怪的是,它正在像一个魅力的IE 9和Firefox。但在IE 8和7中,该选项卡打开(1秒),并立即关闭(禁用弹出窗口阻止程序)。如果我更新了IE 9,问题就解决了。

我也测试此代码:

HtmlPage.Window.Invoke("open", new object[] { "\\SERVER\file.docx", "popup" }); 

但我有同样的问题。

回答

0

它无关的Silverlight,因为它仅使用HTML

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

所以不同的行为从浏览器的JavaScript的差异源自。

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

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

0

感谢您的快速回答!

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

我创办了这,似乎在IE 7,IE 8和IE 9的工作:

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); 
} 

我知道,这不是很体面......而且标签保持打开状态。

相关问题