我正在使用以下代码显示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
有没有人有任何想法?
保
答案 0 :(得分:0)
您是否尝试过这种方法:
var javascript = string.Format("var win = window.open(); win.document.title('{0}'); win.focus();", "success!");