0

我正在使用 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);

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

4

4 回答 4

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'

PS :- 上面的代码只有在新窗口具有相同的协议、域和端口时才有效。如果它在另一个域上,出于安全原因,您不能这样做。

于 2012-10-03T08:58:54.870 回答
1

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

如何在打开时注入:

使用Javascript从父窗口访问子窗口元素 (关于跨域资源共享的安全问题的通知)

简而言之:

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页面的左右两侧body

尝试将以下样式块插入您的head标签:

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

10px左边距和右边距在哪里。

于 2012-10-03T08:58:56.577 回答
1

你也可以使用

window.resizeTo(x,y);

例如:

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

在正文的 onload() 事件上调用该函数

<body onload="resizeWindow()" >
   body of page
</body>
于 2012-10-03T08:59:40.927 回答
1

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

于 2012-10-03T08:52:03.303 回答