如何開啟一個可控制大小的新視窗?


如何開啟一個可控制大小的新視窗?

如何開啟一個可控制大小的新視窗?


 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 留言