1. 程式人生 > >zDialog的使用以及Demo及下載地址

zDialog的使用以及Demo及下載地址

彈出框:

  1. 代替window.open、window.alert、window.confirm;提供良好的使用者體驗;
  2. 水晶質感,設計細膩,外觀漂亮;
  3. 相容ie6/7/8、firefox2/3、Opera;彈出框在ie6下不會被select控制元件穿透;
  4. 無外部css檔案,引用Dialog.js即可使用;
  5. 對iframe下的應用作了充分考慮,適合複雜的系統應用;
  6. Dialog顯示的內容(三種):1、指向一個URL的iframe視窗;2、頁面內隱藏的元素中的html內容;3、直接輸出一段html內容;
  7. 按ESC鍵可關閉彈出框;

主調函式引數說明:

Dialog.open({ID,Title,URL,InnerHtml,InvokeElementId,Width,Height,Top,Left,Drag,OKEvent,ShowButtonRow,MessageTitle,Message,AutoClose,OnLoad})


  • ID:視窗id號,可省略。每個視窗的id必須是唯一的不能重複。
  • Title:視窗標題。如不寫此項預設值為""。
  • URL:  視窗內容頁地址,或使用相對路徑或絕對路徑,注意如果使用http://www.5icool.org形式的絕對地址,則http://不能省略。
  • InnerHtml:  視窗內容html程式碼,用於直接輸出html內容,注意不要讓生成的內容因為不適當的寬度或定位方式而破壞了Dialog的外觀。
  • InvokeElementId:  本頁面內隱藏的元素的id,用於顯示頁面內隱藏的元素中的html內容,注意不要讓內容因為不適當的寬度或定位方式而破壞了Dialog的外觀。
  • Width:視窗寬度(dialog內容區寬度),值為數值型,預設值為視窗可見寬的40%。
  • Height:視窗高度(dialog內容區高度),值為數值型,預設值為視窗可見寬的20%。
  • Left:視窗距瀏覽器左邊距離,值為數值型或字串型(當使用百分比時為字串型),如Left:"0%",Top:"0%"為左上,Left:"50%",Top:"50%"為居中,Left:"100%",Top:"100%"為右下。
  • Top:視窗距瀏覽器頂端距離,值為數值型或字串型(百分比)。
  • Drag:是否允許拖動視窗,值為布林型(true|false),預設值為true,注意需要頁面引用了Drag.js。
  • OKEvent:點選確定按鈕後執行的函式。
  • CancelEvent:點選取消按鈕或點選關閉按鈕後執行的函式,預設為關閉本Dialog。
  • ShowButtonRow:是否不顯示按鈕欄,值為布林型(true|false),預設值為false,當定義了OKEvent或呼叫了addButton時自動設為true。
  • MessageTitle,Message:自定義的視窗說明欄中的小標題和說明。
  • ShowMessageRow:是否顯示視窗說明欄,值為布林型(true|false),預設值為false,當定義了MessageTitle或Message時自動設為true。
  • AutoClose:是否自行關閉,值為數值型,預設值為false。
  • OnLoad:視窗內容載入完成後執行的程式,值為函式型。

1. 普通視窗


	Dialog.open({URL:"test.html"});

2. 設定了高寬和標題的普通視窗


	var diag = new Dialog();
	diag.Width = 600;
	diag.Height = 300;
	diag.Title = "設定了高寬和標題的普通視窗";
	diag.URL = "test.html";
	diag.show();

3. 內容頁為外部連線的視窗


	var diag = new Dialog();
	diag.Width = 900;
	diag.Height = 400;
	diag.Title = "內容頁為外部連線的視窗";
	diag.URL = "http://www.5icool.org/";
	diag.show();

4. 內容頁為html程式碼的視窗


	var diag = new Dialog();
	diag.Width = 300;
	diag.Height = 100;
	diag.Title = "內容頁為html程式碼的視窗";
	diag.InnerHtml='<div style="text-align:center;color:red;font-size:14px;">直接輸出html,使用 <b>InnerHtml</b> 屬性。</div>'
	diag.OKEvent = function(){diag.close();};//點選確定後呼叫的方法
	diag.show();

5. 內容頁為隱藏的元素的html內容


	var diag = new Dialog();
	diag.Width = 300;
	diag.Height = 150;
	diag.Title = "內容頁為隱藏的元素的html";
	diag.InvokeElementId="forlogin"
	diag.OKEvent = function(){$id("username").value||Dialog.alert("使用者名稱不能為空");$id("userpwd").value||Dialog.alert("密碼不能為空")};//點選確定後呼叫的方法
	diag.show();
使用者登陸
使用者名稱
密 碼

6. 在呼叫頁面按鈕關閉彈出視窗


	var diag = new Dialog();
	diag.Modal = false;
	diag.Title = "彈出沒有遮罩層的視窗";
	diag.URL = "test.html";
	diag.show();
關閉視窗按鈕程式碼: Dialog.close();

7. 在指定位置彈出視窗


	var diag = new Dialog();
	diag.Width = 200;
	diag.Height = 100;
	diag.Modal = false;
	diag.Title = "在指定位置彈出視窗";
	diag.Top="100%";
	diag.Left="100%";
	diag.URL = "test.html";
	diag.show();
注:可使用數字或百分比(帶百分比符號的字串)來定義相對於當前視窗的位置,換算效果同css中用百分比定義背景圖位置,如Left:"0%",Top:"0%"為左上,Left:"50%",Top:"50%"為居中,Left:"100%",Top:"100%"為右下。

8. 返回值到呼叫頁面


	var diag = new Dialog();
	diag.Title = "返回值到呼叫頁面";
	diag.URL = "test.html";
	diag.OKEvent = function(){$id('getval').value = diag.innerFrame.contentWindow.document.getElementById('a').value;diag.close();};
	diag.show();
	var doc=diag.innerFrame.contentWindow.document;
	doc.open();
	doc.write('<html><body><input id="a" type="text"/>請在文字框裡輸入一些值</body></html>') ;
	doc.close();

9. 代替window.alert及window.confirm


	Dialog.alert("提示:你點選了一個按鈕");

	Dialog.confirm('警告:您確認要XXOO嗎?',function(){Dialog.alert("yeah,週末到了,正是好時候")});
注:Dialog.alert(msg, func, w, h)第二個引數為點選“確定”按鈕後執行的函式。
Dialog.confirm(msg, funcOK, funcCal, w, h)第二個引數為點選“確定”按鈕後執行的函式,第三個引數為點選“取消”按鈕後執行的函式。

10. 建立其它按鈕


	var diag = new Dialog();
	diag.Title = "建立其它按鈕";
	diag.URL = "test.html";
	diag.show();
	diag.addButton("next","下一步",function(){
		var doc=diag.innerFrame.contentWindow.document;
		doc.open();
		doc.write('<html><body>進入了下一步</body></html>') ;
		doc.close();
	})

11. 帶有內容說明欄的新視窗


	var diag = new Dialog();
	diag.Title = "帶有說明欄的新視窗";
	diag.Width = 900;
	diag.Height = 400;
	diag.URL = "http://www.5icool.org/";
	diag.MessageTitle = "澤元網站內容管理系統";
	diag.Message = "澤元網站內容管理系統是一個基於J2EE及AJAX技術的企業級網站內容管理系統";
	diag.show();

12. 顯示窗體內容頁面標題


	var diag = new Dialog();
	diag.URL = "http://www.5icool.org/";
	diag.show();
注:如果窗體內為iframe內容頁,並且沒有設定Title屬性,並且引用頁和當前頁在同一個域內,則顯示顯示窗體內容頁面標題。

13. 在彈窗的內容載入完成後,執行方法


	var diag = new Dialog();
	diag.OnLoad=function(){alert("頁面載入完成")};
	diag.URL = "http://www.5icool.org/";
	diag.show();
注:如果窗體內為iframe內容頁,要在載入完成後對內容頁作操作,必須考慮訪問許可權,如引用頁和當前頁應在同一個域內。

14. 點選取消及關閉時執行方法

X 我是隱藏內容
	var diag = new Dialog();
	diag.Title = "點選取消或關閉按鈕時執行方法";
	diag.CancelEvent=function(){alert("點選取消或關閉按鈕時執行方法");diag.close();};
	diag.URL = "test.html";
	diag.show();

15. 不允許拖拽


	var diag = new Dialog();
	diag.Drag=false;
	diag.URL = "test.html";
	diag.show();

16. 動態改變視窗大小


	var diag = new Dialog();
	diag.Title = "修改中窗體尺寸";
	diag.URL = "javascript:void(document.write(\'這是彈出視窗中的內容\'))";
	diag.OKEvent = function(){
		var doc=diag.innerFrame.contentWindow.document;
		doc.open();
		doc.write('<html><body>視窗尺寸改為600*300</body></html>') ;
		doc.close();
		diag.setSize(600,300);
	};
	diag.show();
	diag.okButton.value="改變視窗大小"

17. 彈出視窗自動關閉


	var diag = new Dialog();
	diag.AutoClose=5;
	diag.ShowCloseButton=false;
	diag.URL = "javascript:void(document.write(\'這是彈出視窗中的內容\'))";
	diag.show();
注:AutoClose為自動關閉時間,單位秒

18. 設定確定按鈕及取消按鈕的屬性



	var diag = new Dialog();
	diag.Title="設定確定按鈕及取消按鈕的屬性";
	diag.ShowButtonRow=true;
	diag.URL = "test.html";
	diag.show();
	diag.okButton.value=" OK ";
	diag.cancelButton.value="Cancel";

19. 窗體內的按鈕操作父Dialog


	var diag = new Dialog();
	diag.Title = "窗體內的按鈕操作父Dialog";
	diag.URL = "test.html";
	diag.show();
	var doc=diag.innerFrame.contentWindow.document;
	doc.open();
	doc.write('<html><body><input type="button" id="a" value="修改父Dialog尺寸" \
    onclick="parentDialog.setSize(function(min,max){return Math.round(min+(Math.random()*(max-min)))}(300,800))" \
    /><input type="button" id="b" value="關閉父視窗" onclick="parentDialog.close()" /></body></html>') ;
	doc.close();