0

ASP.NET と C# を使用しており、ウィンドウを開くために window.open() を使用しています。そのウィンドウでそのページの幅を設定する必要があります。

ボタンクリックイベントでこのコードを使用しています。

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

4 に答える 4

1

window.open() 関数内で指定された幅は、ポップアップ ウィンドウの幅のみを設定します。ページの幅を変更したい場合は、Print.aspx 内で幅を変更してみてください。

于 2012-10-03T08:52:03.303 に答える
1

を使用してページの幅を変更することはできませんwindow.open。ウィンドウのプロパティを設定するだけです。

ページの を変更するには、おそらくラップされた要素またはページwidthの幅を変更する必要がある場合、print.aspx のスタイルを変更する必要があります。divbody

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 に答える