如何在打开窗口时设置页面大小?

时间:2012-10-03 08:47:59

标签: c# javascript asp.net

我正在使用ASP.NET和C#,我正在使用window.open()来打开窗口。现在我需要在该窗口中设置该页面的宽度。

我在buttonclick事件上使用此代码。

ClientScript.RegisterStartupScript(this.GetType(), "oncl", "<script language=javascript>window.open('Print.aspx','PrintMe','width=900,resizable=1,scrollbars=1');</script>");

脚本内部的宽度仅设置窗口宽度。但我想设置页面的宽度。

有可能吗?

谢谢..

编辑:

很抱歉我之前没有提到它。我正在将内容动态写入print.aspx。我正在使用此代码填写页面。

    Page pg = new Page();
    pg.EnableEventValidation = false;
    HtmlForm frm = new HtmlForm();
    pg.Controls.Add(frm);
    frm.Controls.Add(ctrl);
    pg.DesignerInitialize();
    pg.RenderControl(htmlWrite);
    string strHTML = stringWrite.ToString();
    HttpContext.Current.Response.Clear();
    HttpContext.Current.Response.Write(strHTML);

这是在pageload事件上调用的。所以我在print.aspx中打印.aspx页面。所以我希望这个内容应该是静态页面宽度。

4 个答案:

答案 0 :(得分:1)

window.open()函数中指定的宽度仅设置弹出窗口的宽度。如果要更改页面宽度,则应尝试更改Print.aspx中的宽度。

答案 1 :(得分:1)

您无法使用window.open更改页面宽度,只会设置窗口属性。

要更改页面的width,您需要更改print.aspx的样式 可能是您必须更改已包装的div元素或页面的body的宽度

var newwindow = window.open('Print.aspx');
var elem = newwindow.document.getElementById('my-id');
elem.style.width = 'XYZpx'

P.S。 : - 上述代码仅在新窗口具有相同的协议,域和端口时才有效。如果它在另一个域上,出于安全原因,您无法执行此操作。

答案 2 :(得分:1)

如果您仅使用window.open方法使用该页面,则分别设置页面宽度为硬编码,否则,使用window.open打开页面时注入大小。

打开时如何注射:

Access child window elements from parent window using Javascript (关于Cross-origin resource sharing上的安全问题的注意事项)

简而言之:

var childWindow = window.open('Print.aspx','PrintMe','width=900,resizable=1,scrollbars=1');
childWindow.document.getElementById('someDivId').style.width = '400px';

或者在服务器端访问它:

HtmlForm frm = new HtmlForm();
frm.style = ; //

read here

如何设置硬编码:

要更改窗口中哪个元素的宽度? body div

我猜你是在考虑margin左边&amp;页面右侧body

尝试将以下样式块插入head标记:

<style>
body{margin: 0 10px 0 10px;}
</style>

其中10px是左右边距。

答案 3 :(得分:1)

您也可以使用

window.resizeTo(x,y);

For Instance:

function resizeWindow() 
{           
    // you can get height and width from serverside as well      
    var width=400;
    var height=400; 
    window.resizeTo(width,height);           
}

on body的onload()事件调用函数

<body onload="resizeWindow()" >
   body of page
</body>