无法设置通过Window.Open加载的页面标题

时间:2013-09-06 22:02:23

标签: c# javascript html

我正在使用以下代码显示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");
}
}

这样可以很好地加载新窗口

然而,我不能为我的生活找出如何设置这个窗口的标题?

我尝试了很多不同的方法,但没有一种方法可以使用

我在aspx

中使用了脚本标记尝试过PageLoad

我猜这可能是一个安全限制?

我看到有人建议将window.open的结果放到变量上,然后设置标题,但这只会导致页面显示在新标签中

我的页面标记中有报告,但忽略了

我需要将它显示在新窗口中而不是在新标签中

我正在使用IE 10

有没有人有任何想法?

1 个答案:

答案 0 :(得分:0)

您是否尝试过这种方法:

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