1

我正在使用下面的代码来显示 Silverlight 的页面

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

有没有人有任何想法?

保罗

4

1 回答 1

0

您是否尝试过这种方法:

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

?

于 2013-09-06T22:38:39.817 回答