我正在使用此代码从我的Silverlight应用程序中打开一个新选项卡(单击按钮):
HtmlPage.Window.Navigate(new Uri("\\SERVER\file.docx"), "_blank");奇怪的是,它在IE9和Firefox上的工作就像一个护身符。但在IE8和IE7中,选项卡正在打开(持续1秒),并且会立即关闭(PopUp阻止程序被禁用)。如果我更新IE 9,这个问题就解决了。
我还测试了以下代码:
HtmlPage.Window.Invoke("open", new object[] { "\\SERVER\file.docx", "popup" }); 但我也有同样的问题。
发布于 2012-01-24 00:28:56
它与Silverlight没有任何关系,因为它只使用html桥
http://msdn.microsoft.com/en-us/library/cc645076(v=vs.95).aspx
因此,不同的行为源于浏览器中的javascript差异。
窗口/选项卡打开是不可靠的,因为它取决于实际的浏览器和实际用户的设置。
无论如何,你应该在SO或Google中寻找这些差异。
发布于 2012-01-24 16:31:52
感谢您的快速回答!
我知道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);
} 我知道,这不是很得体...此外,标签是开着的。
https://stackoverflow.com/questions/8972971
复制相似问题