2013-09-06 4 views
1

Я использую ниже код, чтобы показать страницу из SilverlightНевозможно установить название страницы, загруженной через window.open

public void OpenLinkInNewWindow(string url, int? width = null, int? height = null) 
{ 
    try 
    { 
     Argument.IsNotNull("url", url); 

     if (!width.HasValue) 
     { 
      width = int.Parse(HtmlPage.Window.Eval("screen.width").ToString()) - MarginLeft; 
     } 

     if (!height.HasValue) 
     { 
     // Subtract the margin twice because of the start menu (which we assume is on the bottom) 
     height = int.Parse(HtmlPage.Window.Eval("screen.height").ToString()) - MarginTop - (MarginTop/2); 
     } 

     string sizeJavascript = string.Empty; 
     sizeJavascript += string.Format(",width={0}", width.Value); 
     sizeJavascript += string.Format(",height={0}", height.Value); 

     int leftOffset = MarginLeft/2; 
     int topOffset = MarginTop/2; 

     string javascript = string.Format("window.open('{0}', '', 'left={1},top={2},scrollbars=1,resizable=1,modal=no,alwaysRaised=yes{3}')", url, 
       leftOffset, topOffset, sizeJavascript); 

     HtmlPage.Window.Eval(javascript); 
    } 
    catch (Exception) 
    { 
    //There may be a problem loading the window via Javascript so try to open in new page 
    try 
    { 
     OpenLinkNewPage(url); 
    } 
    catch (Exception) 
    { 
     //There is still a problem - perhaps a popup blocker. So as a last resort, open link in the same page 
     OpenLinkSamePage(url); 
    } 
    } 
} 

public void OpenLinkSamePage(string url) 
{ 
    HtmlPage.Window.Navigate(new Uri(url), string.Empty); 
} 

public void OpenLinkNewPage(string url) 
{ 
    HtmlPage.Window.Navigate(new Uri(url), "_blank"); 
} 
} 

Это хорошо работает в том же загрузить новое окно

Однако, я не могу для жизни меня узнать, как установить заголовок этого окна?

Я попытался нагрузки по-разному, и ни один из них не работает

Я попытался Pageload, используя тег сценария внутри ASPX

Я предполагаю, что это может быть ограничение безопасности?

Я видел, что люди предлагают положить результат window.open на переменную, а затем Настрой г титул, но это только приводит к странице отображается в новой вкладке

У меня есть отчет в разметке моей страницы, но это игнорируется

мне это нужно, чтобы быть в новом окне НЕ в новой вкладке

Я использую IE 10

кто-нибудь есть какие-нибудь идеи?

Пол

ответ

0

Пытались ли вы, возможно, этот подход:

var javascript = string.Format("var win = window.open(); win.document.title('{0}'); win.focus();", "success!"); 

?

+0

Только что попробовал это, и он не работает, я просто получаю исключение «Eval failed»? – Paul

+0

Привет, Тим, я сделал это. Я также попытался просто выбрать сборку, которая содержит типы, и она все еще не работает. – Paul

+0

Теперь это стало еще страннее! На моей машине это не работает, но на другой машине, которая также имеет IE 10, название изменяется правильно и отображается строка заголовка только для чтения? – Paul

Смежные вопросы