如何開啟一個可控制大小的新視窗?
如何開啟一個可控制大小的新視窗?
public class jsWindow
{
/// <summary>
/// 指定新視窗將被開啟在哪裡, 可以使用的值如下:
/// "_blank" 或 "" - 開啟在一個新視窗中
/// "_self" - 開啟在原視窗; 若網頁中有定義 frameset 則開啟在原 frameset 中
/// "_top" - 如果原網頁未定義 frameset 的話, 如此設定的結果和 _self 一樣; 若有定義 frameset 則會開啟在原視窗並取消所有 frameset
/// "_parent" - 如果原網頁未定義 frameset 的話, 如此設定的結果和 _self 一樣; 若有定義 frameset 則會開啟在原 frameset 的上一層
/// </summary>
public string Target = "_blank";
/// <summary>
/// 每隔多少時間強迫被開啟的新視窗被 focus, 單位為 ms, 預設值為 700ms
/// </summary>
public string intervalCheckFocus = "700";
/// <summary>
/// 在多少時間後解除強迫被開啟的新視窗被 focus 的動作, 單位為 ms, 預設值為 6000ms
/// </summary>
public string timeStayTop = "6000";
/// <summary>
/// 指定新視窗是否開啟為劇場模式 (theator mode); 此設定將取代 height, width, top 與 left 的指定值
/// 可以使用的值有 yes | no | 1 | 0, 預設為 "no"
/// </summary>
public string Channelmode = "";
/// <summary>
/// 指定新視窗是否開啟為全螢幕模式; 此設定將取代 height, width, top 與 left 的指定值, 且隱藏標題列與選單列
/// 可以使用的值有 yes | no | 1 | 0, 預設為 "no"
/// </summary>
public string FullScreen = "";
/// <summary>
/// 指定新視窗上緣距離螢幕最上方的高度, 單位為 pixel, 值必須大於或等於 0
/// </summary>
public string Top = "";
/// <summary>
/// 指定新視窗左緣距離螢幕最左方的寬度, 單位為 pixel, 值必須大於或等於 0
/// </summary>
public string Left = "";
/// <summary>
/// 指定新視窗的寬度, 單位為 pixel, 最小值是 250
/// </summary>
public string Width = "";
/// <summary>
/// 指定新視窗的高度, 單位為 pixel, 最小值是 150
/// </summary>
public string Height = "";
/// <summary>
/// 指定新視窗是否顯示工具列
/// 可以使用的值有 yes | no | 1 | 0, 預設為 "yes"
/// </summary>
public string Toolbar = "";
/// <summary>
/// 指定新視窗是否顯示選單列; 在 IE 7 以上, 除非按著 Alt 鍵, 否則選單列預設並不出現; 但若此值設為 no/0 則按著 Alt 也不會出現選單列
/// 可以使用的值有 yes | no | 1 | 0, 預設為 "yes"
/// </summary>
public string Menubar = "";
/// <summary>
/// 指定新視窗是否顯示導覽列; 在 IE 7 以上導覽列包括上一頁、下一頁等按鈕
/// 可以使用的值有 yes | no | 1 | 0, 預設為 "yes"
/// </summary>
public string Location = "";
/// <summary>
/// 指定新視窗是否出現狀態列
/// 可以使用的值有 yes | no | 1 | 0, 預設為 "yes"
/// </summary>
public string Status = "yes";
/// <summary>
/// 指定新視窗是否出現 scroll bars
/// 可以使用的值有 yes | no | 1 | 0, 預設為 "yes"
/// </summary>
public string Scrollbars = "";
/// <summary>
/// 指定新視窗是否可調整大小; 在 IE 7 以上, 若此值設為 no/0 則同時取消 tab 功能
/// 可以使用的值有 yes | no | 1 | 0, 預設為 "yes"
/// </summary>
public string Resizable = "";
/// <summary>
/// 指定要開啟的 URL; 請注意, 字串請以 http:// 開頭, 否則會使用當前網頁的相對位址
/// </summary>
public string url = "";
public void open(System.Web.UI.Page page)
{
if (!string.IsNullOrEmpty(url.Trim()))
open(page, url);
}
public void open(System.Web.UI.Page page, string url)
{
if (!string.IsNullOrEmpty(url.Trim()))
{
StringWriter sw = new StringWriter();
sw.WriteLine("<script language='javascript' type='text/javascript'>");
sw.Write("OptString = '");
sw.Write("channelmode = " + Channelmode + ",");
sw.Write("fullscreen = " + FullScreen + ",");
sw.Write("top = " + Top + ",");
sw.Write("left =" + Left + ",");
sw.Write("width =" + Width + ",");
sw.Write("height =" + Height + ",");
sw.Write("toolbar =" + Toolbar + ",");
sw.Write("menubar =" + Menubar + ",");
sw.Write("location =" + Location + ",");
sw.Write("status =" + Status + ",");
sw.Write("scrollbars = " + Scrollbars + ",");
sw.WriteLine("resizable= " + Resizable + "';");
sw.WriteLine(" subWin=window.open('" + url + "', '" + Target + "', OptString);");
sw.WriteLine(" timerID = setInterval('subWin.focus()', " + intervalCheckFocus + ");");
sw.WriteLine(" setTimeout('clearInterval(timerID)', " + timeStayTop + ");");
sw.WriteLine("</script>");
ScriptManager.RegisterClientScriptBlock(page, page.GetType(), "myWindow", sw.ToString(), false);
}
}
}
0 留言