Silverlight открыть новую вкладку: закрыть с IE 7-8 - PullRequest
2 голосов
/ 23 января 2012

Я использую этот код для открытия новой вкладки из моего приложения Silverlight (при нажатии кнопки):

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

Но у меня была такая же проблема.

Ответы [ 2 ]

0 голосов
/ 24 января 2012

Спасибо за быстрый ответ!

Я знаю, что поведение в 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);
} 

Я знаю, это не очень прилично ... более того, вкладка остается открытой.

0 голосов
/ 23 января 2012

Это не имеет ничего общего с Silverlight, потому что используется только html bridge :

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

Таким образом, различное поведение происходит из-за различий в JavaScript в браузерах.

Открытие окна / вкладки ненадежно, поскольку оно зависит от реального браузера и настроек фактического пользователя.

В любом случае, вы должны искать эти различия здесь, в SO или Google.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...