test.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<script language='javascript' src='popup.js'></script>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
</HEAD>
<BODY>
<Script Language="JavaScript">
function ShowIframe() //显示iframe
{
var pop=new Popup({ contentType:1,isReloadOnClose:false,width:400,height:500});
pop.setContent("contentUrl","http://www.baidu.com");
pop.setContent("title","框架iframe示例");
pop.build();
pop.show();
}
function ShowHtmlString() //显示html
{
var strHtml = "<table border=1 style='width:90%; text-align:center;'><tr style='height:40px'><td>ds</td><td>dads</td></tr><tr style='height:40px'><td>dadas</td><td>dasd</td></tr><tr style='height:40px'><td>dadasd</td><td>dsadads</td></tr></table>";
var pop=new Popup({ contentType:2,isReloadOnClose:false,width:340,height:300});
pop.setContent("contentHtml",strHtml);
pop.setContent("title","字符串示例html");
pop.build();
pop.show();
}
function ShowAlert() //显示警示对话框
{
var pop=new Popup({ contentType:4,isReloadOnClose:true,width:340,height:80});
pop.setContent("title","警告框示例alert");
pop.setContent("alertCon","alert对话框的内容");
pop.build();
pop.show();
}
function ShowConfirm() //显示确认对话框
{
var pop=new Popup({ contentType:3,isReloadOnClose:false,width:340,height:80});
pop.setContent("title","对话框示例confirm");
pop.setContent("confirmCon","confirm对话框的内容");
pop.setContent("callBack",ShowCallBack);
pop.setContent("parameter",{id:"divCall",str:"点击确定后显示的字符串",obj:pop});
pop.build();
pop.show();
}
function ShowCallBack(para) //回调函数
{
var o_pop = para["obj"]
var obj = document.getElementById(para["id"]);
o_pop.close();
obj.innerText = para["str"];
}
</Script>
<INPUT TYPE="button" value="ShowHtmlString()" onclick="ShowHtmlString();">
<br>
<INPUT TYPE="button" value="ShowIframe()" onclick="ShowIframe();">
<br>
<INPUT TYPE="button" value="ShowAlert()" onclick="ShowAlert();">
<br>
<INPUT TYPE="button" value="ShowConfirm()" onclick="ShowConfirm();">
</BODY>
</HTML>
Popup.js
if(!Array.prototype.push){
Array.prototype.push=function(){
var startLength=this.length;
for(var i=0;i<arguments.length;i++)
this[startLength+i]=arguments[i];
return this.length;
}
};
function G(){
//alert("aa");
var elements=new Array();
for(var i=0;i<arguments.length;i++){
var element=arguments[i];
if(typeof element=='string')
element=document.getElementById(element);
if(arguments.length==1)
return element;elements.push(element)
};
return elements
};
Function.prototype.bind=function(object){
var __method=this;
return function(){__method.apply(object,arguments)}
};
Function.prototype.bindAsEventListener=function(object){
var __method=this;
return function(event){__method.call(object,event||window.event)}
};
Object.extend=function(destination,source){
for(property in source){destination[property]=source[property]};return destination
};
if(!window.Event){var Event=new Object()};
Object.extend(Event,{observers:false,element:function(event){return event.target||event.srcElement},isLeftClick:function(event){return(((event.which)&&(event.which==1))||((event.button)&&(event.button==1)))},pointerX:function(event){return event.pageX||(event.clientX+(document.documentElement.scrollLeft||document.body.scrollLeft))},pointerY:function(event){return event.pageY||(event.clientY+(document.documentElement.scrollTop||document.body.scrollTop))},stop:function(event){if(event.preventDefault){event.preventDefault();event.stopPropagation()}else{event.returnValue=false;event.cancelBubble=true}},findElement:function(event,tagName){var element=Event.element(event);while(element.parentNode&&(!element.tagName||(element.tagName.toUpperCase()!=tagName.toUpperCase())))element=element.parentNode;return element},_observeAndCache:function(element,name,observer,useCapture){if(!this.observers)this.observers=[];if(element.addEventListener){this.observers.push([element,name,observer,useCapture]);element.addEventListener(name,observer,useCapture)}else if(element.attachEvent){this.observers.push([element,name,observer,useCapture]);element.attachEvent('on'+name,observer)}},unloadCache:function(){if(!Event.observers)return;for(var i=0;i<Event.observers.length;i++){Event.stopObserving.apply(this,Event.observers[i]);Event.observers[i][0]=null};Event.observers=false},observe:function(element,name,observer,useCapture){var element=G(element);useCapture=useCapture||false;if(name=='keypress'&&(navigator.appVersion.match(/Konqueror|Safari|KHTML/)||element.attachEvent))name='keydown';this._observeAndCache(element,name,observer,useCapture)},stopObserving:function(element,name,observer,useCapture){var element=G(element);useCapture=useCapture||false;if(name=='keypress'&&(navigator.appVersion.match(/Konqueror|Safari|KHTML/)||element.detachEvent))name='keydown';if(element.removeEventListener){element.removeEventListener(name,observer,useCapture)}else if(element.detachEvent){element.detachEvent('on'+name,observer)}}});
Event.observe(window,'unload',Event.unloadCache,false);
var class="function"(){
var _class=function(){
this.initialize.apply(this,arguments)
};
for(i=0;i<arguments.length;i++){
superClass=arguments[i];for(member in superClass.prototype){_class.prototype[member]=superClass.prototype[member]}
};
_class.child=function(){return new Class(this)};
_class.extend=function(f){for(property in f){_class.prototype[property]=f[property]}};
return _class
};
function space(flag){
if(flag=="begin"){
var ele=document.getElementById("ft");
if(typeof(ele)!="undefined"&&ele!=null)
ele.,this.returnFalse,false)},returnFalse:function(){return false}};
示例:https://files.cnblogs.com/ewyb/popop.zip