ajax彈出窗口


提取自ZCMS的彈出框:

  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})
  • ID:窗口id號,可省略。每個窗口的id必須是唯一的不能重復。
  • Title:窗口標題。如不寫此項默認值為。
  • URL: 窗口內容頁地址,或使用相對路徑或絕對路徑,注意如果使用http://www.host.com形式的絕對地址,則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:"javascript:void(document.write('這是彈出窗口中的內容'))"});

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

 
	var diag = new Dialog();
	diag.Width = 600;
	diag.Height = 300;
	diag.Title = "設定了高寬和標題的普通窗口";
	diag.URL = "javascript:void(document.write('這是彈出窗口中的內容'))";
	diag.show();

3. 內容頁為外部連接的窗口

 
	var diag = new Dialog();
	diag.Width = 900;
	diag.Height = 400;
	diag.Title = "內容頁為外部連接的窗口";
	diag.URL = "http://demo.zving.com/";
	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||alert("用戶名不能為空");$id("userpwd").value||alert("密碼不能為空")};//點擊確定后調用的方法
	diag.show();

6. 在調用頁面按鈕關閉彈出窗口

   
	var diag = new Dialog();
	diag.Modal = false;
	diag.Title = "彈出沒有遮罩層的窗口";
	diag.URL = "javascript:void(document.write('這是彈出窗口中的內容'))";
	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 = "javascript:void(document.write('這是彈出窗口中的內容'))";
	diag.show();
注:可使用數字或百分比(帶百分比符號的字符串)來定義相對於當前窗口的位置,換算效果同css中用百分比定義背景圖位置,如Left:"0%",Top:"0%"為左上,Left:"50%",Top:"50%"為居中,Left:"100%",Top:"100%"為右下。

8. 返回值到調用頁面

   
	var diag = new Dialog();
	diag.Title = "返回值到調用頁面";
	diag.URL = "javascript:void(document.write('這是彈出窗口中的內容'))";
	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,周末到了,正是好時候")});

10. 創建其它按鈕

 
	var diag = new Dialog();
	diag.Title = "創建其它按鈕";
	diag.URL = "javascript:void(document.write('這是彈出窗口中的內容'))";
	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://demo.zving.com/";
	diag.MessageTitle = "澤元網站內容管理系統";
	diag.Message = "澤元網站內容管理系統是一個基於J2EE及AJAX技術的企業級網站內容管理系統";
	diag.show();

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

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

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

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

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

 
	var diag = new Dialog();
	diag.Title = "點擊取消或關閉按鈕時執行方法";
	diag.CancelEvent=function(){alert("點擊取消或關閉按鈕時執行方法");diag.close();};
	diag.URL = "javascript:void(document.write('這是彈出窗口中的內容'))";
	diag.show();

15. 不允許拖拽

 
	var diag = new Dialog();
	diag.Drag=false;
	diag.URL = "javascript:void(document.write('這是彈出窗口中的內容'))";
	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 = "javascript:void(document.write('這是彈出窗口中的內容'))";
	diag.show();
	diag.okButton.value=" OK ";
	diag.cancelButton.value="Cancel";

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

 
	var diag = new Dialog();
	diag.Title = "窗體內的按鈕操作父Dialog";
	diag.URL = "javascript:void(document.write('這是彈出窗口中的內容'))";
	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();
最后作一下廣告, ZCMS1.1版已經在11月11日發布了,更穩定更強大,敬請期待。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM