我正在使用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页面。所以我希望这个内容应该是静态页面宽度。
答案 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 = ; //
如何设置硬编码:
要更改窗口中哪个元素的宽度?
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>