`
august_000
  • 浏览: 33370 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

基于frame的弹出框

阅读更多
自己写了个基于frame的弹出框,解决了参数的传递,先记录下来,以便于以后自己下载!
效果如下:


/**
 * author: code by ShareMu
 */
 
//获得顶层窗口对象
var topWindow = (function(p, c) {
	while (p != c) {
		c = p
		p = p.parent
	}
	return c
})(window.parent, window);

//弹出窗口方法
function ShowModelDialog(url, titletext, backFn, width, height, params) {
	var msgw, msgh, bordercolor;
	msgw = (width ? width : 600);// 提示窗口的宽度
	msgh = (height ? height : 400);// 提示窗口的高度
	bordercolor = "#336699";// 提示窗口的边框颜色
	titlecolor = "#99CCFF";// 提示窗口的标题颜色
	var sWidth, sHeight;
	var thisW = topWindow;
	sWidth = thisW.document.documentElement.clientWidth;
	sHeight = thisW.document.documentElement.clientHeight;
	// 背景div
	var bgDivId = getRandomStr(16, true, true, true);
	var bgObj = new Element("div");
	bgObj.setAttr("id", bgDivId);
	bgObj.addStyle("position", "absolute");
	bgObj.addStyle("top", "0");
	bgObj.addStyle("background", "#777");
	bgObj.addStyle("opacity", "0.6");
	bgObj.addStyle("left", "0");
	bgObj.addStyle("width", "100%");
	bgObj.addStyle("height", sHeight);
	bgObj = bgObj.element;
	thisW.document.body.appendChild(bgObj);
	var iframeObj = new Element("iframe");
	var iframeObjId = getRandomStr(16, true, true, true);
	iframeObj.setAttr("id", iframeObjId);
	iframeObj.setAttr("name", "ifname");
	iframeObj.addStyle("position", "absolute");
	iframeObj.addStyle("top", "25px");
	iframeObj.addStyle("filter", "Chroma(Color=white)");
	iframeObj.addStyle("zIndex", "10000");
	iframeObj.addStyle("width", "100%");
	iframeObj.addStyle("left", "0");
	
	iframeObj.addStyle("scrolling", "auto");
	iframeObj.addStyle("height", msgh);
	if(url)
	{
		if(params)
		{
			if(url.indexof("?")!=-1)
			{
				url = url+"&"+params;
			}else{
				url = url+"?"+params;
			}
		}
		iframeObj.setAttr("src", url);
	}
	iframeObj = iframeObj.element;
	iframeObj.style.border = "0";
	iframeObj.style.background= "white";
	// 消息div
	var msgDivId = getRandomStr(16, true, true, true);
	var msgObj = thisW.document.createElement("div")
	msgObj.setAttribute("id", msgDivId);
	msgObj.setAttribute("align", "center");
	msgObj.style.position = "absolute";
	
	msgObj.style.background = "white";
	msgObj.style.font = "12px/1.6em Verdana, Geneva, Arial, Helvetica, sans-serif";
	msgObj.style.width = msgw + "px";
	msgObj.style.height = (msgh + 24) + "px";
	var toph=sHeight - msgh;
	if(toph<0)
	{
		toph = 0;
	}
	msgObj.style.top = (thisW.document.documentElement.scrollTop + toph/ 2)
			+ "px";
	msgObj.style.left = (sWidth - msgw) / 2 + "px";
	msgObj.style.zIndex = "1000";
	// 消息标题
	var msgTitleId = getRandomStr(16, true, true, true);
	var titleTable =  thisW.document.createElement("div");
	//var titleTableTR =  thisW.document.createElement("div");
	var titleTableMsgTD =   thisW.document.createElement("div");
	var closeTD =  thisW.document.createElement("div");
	titleTable.style.zIndex = "1000";
	titleTable.id = msgTitleId;
	titleTable.style.width = msgw-5;
	titleTableMsgTD.style.width = msgw-2;
	closeTD.style.right = "5";
	closeTD.style.top = "0";
	titleTable.style.display="inline";
	titleTable.style.border = "1px solid " + titlecolor;
	//titleTable.style.cursor = "pointer";
	closeTD.style.position = "absolute";
	titleTableMsgTD.setAttribute("align", "left");
	titleTableMsgTD.style.height = "24";
	titleTableMsgTD.style.border = "1px solid " + titlecolor;
	titleTable.setAttribute("align", "left");
	closeTD.setAttribute("align", "right");
	titleTable.style.background = bordercolor;
	titleTable.style.color = "white";

	
	var msgtitleTableIdl = getRandomStr(16, true, true, true);
	titleTableMsgTD.innerHTML = (titletext?titletext:"弹出框");
	titleTableMsgTD.style.margin = "0";
	//titleTableMsgTD.innerHTML = "弹出框";
	
 
	closeTD.style.cursor = "pointer";
	closeTD.innerHTML = "关闭";
	closeTD.onclick = function() {
		var rvalue = thisW.frames[iframeObjId].returnValue;
		if (backFn) {
			backFn(rvalue);
		}
		thisW.document.body.removeChild(bgObj);
		thisW.document.getElementById(msgDivId).removeChild(titleTable);
		thisW.document.body.removeChild(msgObj);
	}
	closeTD.style.margin = "0";
	titleTable.appendChild(titleTableMsgTD);
	titleTable.appendChild(closeTD);
	
	msgObj.appendChild(titleTable);
	msgObj.appendChild(iframeObj);
	thisW.document.body.appendChild(msgObj);
	//alert(thisW.document.getElementById(msgTitleId).id);
}

function Element(type, paret) {
	this.element = topWindow.document.createElement(type);
}
Element.prototype.setAttr = function(name, value) {
	this.element.setAttribute(name, value);
}
Element.prototype.addStyle = function(name, value) {
	eval("this.element.style." + name + "=\"" + value + "\";");
}

//获得随机字符串 元素ID
function getRandomStr(str_0, str_1, str_2, str_3) {
	var seed_array = new Array();
	var seedary;
	var i;
	seed_array[0] = ""
	seed_array[1] = "a b c d e f g h i j k l m n o p q r s t u v w x y z";
	seed_array[2] = "a b c d e f g h i j k l m n o p q r s t u v w x y z";
	seed_array[3] = "0 1 2 3 4 5 6 7 8 9";
	if (!str_1 && !str_2 && !str_3) {
		str_1 = true;
		str_2 = true;
		str_3 = true;
	}
	if (str_1) {
		seed_array[0] += seed_array[1];
	}
	if (str_2) {
		seed_array[0] += " " + seed_array[2];
	}
	if (str_3) {
		seed_array[0] += " " + seed_array[3];
	}
	seed_array[0] = seed_array[0].split(" ");
	seedary = ""
	for (i = 0; i < str_0; i++) {
		seedary += seed_array[0][Math.round(Math.random()
				* (seed_array[0].length - 1))]
	}
	return (seedary);
}



  • 大小: 23.1 KB
  • 大小: 23.1 KB
分享到:
评论

相关推荐

    Rookey.Frame企业级极速开发框架.zip

    多种编辑方式支持包括弹出表单编辑、打开tab标签编辑、网格内行编辑、网格内表单编辑 (9)支持表单字段自定义,包括可编辑性自定义、控件类型和宽度自定义、字段验证自定义 (10)支持单据编码规则自定义 (11)...

    OpenGL项目-BaymaxFootballGame

    菜单操作:主菜单、右键弹出式菜单、功能操作 按钮操作:控制足球平移操作、控制物体旋转、平移操作 光照材质:针对 Baymax 纹理映射:针对球体 gluSphere 贴图 4、运行效果及项目使用文档详见:...

    工程硕士学位论文 基于Android+HTML5的移动Web项目高效开发探究

    Chrome Frame 会把最新版的Chrome Webkit 内核和JavaScript 引擎注入到IE中, IE浏览器将获得Chrome的性能和功能 目录 摘要 I ABSTRACT II 专业名词清单 III 第一章 绪论 1 1.1 研究背景与意义 1 1.2国内外相关...

    加法神器 (搬运)

    2, 提供了修改功能,右侧的列表框,双击就可以弹出修改对话框 3, 提供加的次数统计,你可以不怕漏输,错输了。 4, 对于数字输入有校验,如果输入非数字,有提示。 5, 提供“和”值的复制功能。 四、效果: 1...

    swing界面设计之JTree

    8. 给JTree添加右键弹出菜单 61 9. 关于JTree的展开 61 10. 如何遍历JTree 62 (五) JTree右键菜单实现编辑、添加、删除节点 63 Test.java源代码 63 (六) 功能齐全的JTree例子 66 TreeEditTest.java源代码 66 (七) ...

    KODExplorer 芒果云-资源管理器

    - 弹出搜索框遍历子文件夹递归搜索 - session key 加入kod_前缀 避免和其他系统key冲突 - 编辑器选中优化 选择鼠标到窗口外事件处理 ####fix bug:(bug解决和程序优化) - backspace后退截获浏览器事件,作为...

    会议信息管理系统详细设计

    设计时我尽可能设想各种边界条件,如记录为空,输入为空,输入出错等,当输入的信息满足这些边界条件时,将会弹出一个提示框提醒用户,以便用户能及时地做出修改。添加的信息将全部存储到数据库中。 在窗体上放置多...

    网际畅游 MyIE 3.0 源代码

    不弹出脚本错误提示框:在浏览某些网页时会出现脚本错误,要避免这个问题可以在MyIE选项中选中“不弹出脚本错误对话框”. 本地文件浏览:在工具栏上选择文件按钮,会出现一个类似文件管理器的窗口,其中列出了你...

    MFC的程序框架剖析

    紧接着就会有一个判断,用来确定该链表中是否只有一项,如果链表中保存了多个文档模版,则会弹出一个对话框,来让我们选择到底是使用哪一套文档模版来构建应用程序,相信大家也都见到过这种情况吧。对了,还有一点要...

    VC实现炫眩qq界面的模拟(附源码)

    现在已经完成QQ主界面的外观实现与美化了,接下来我们通过VC向导添加一个对话框资源并添加相应的类,命名CtalkDlg类,其功能是聊天对话框的对话窗口,也就是当我们双击用户列表的其中一个用户后弹出的聊天窗口....

    WTL 9.1 5270 ReadMe 中文 汉化 中英文对照版 01d

    WTL为众多用户界面元素提供支持,包括框架窗口和弹出窗口、MDI、标准和通用控件、通用对话框、属性表单和属性页、GDI对象、用户界面更新、可滚动窗口、分割窗口、命令条等等。WTL类尽量模板化,使用较少实例数据和较...

    wpf源码大全 精通C#3.0图书源码 详细源码 学习好用

    AnimationPopup 动画Popup弹出窗口。 BackgroundLinearGradientBrushDemo 使用渐变画刷填充背景示例。 BindingSliderDemo 使用Silder滑动条控件。 ButtonBaseDemo 使用Button控件的ButtonBase基类。 ...

    WTL 9.1 5270 Beta 中文 汉化 中英文对照版

    WTL为众多用户界面元素提供支持,包括框架窗口和弹出窗口、MDI、标准和通用控件、通用对话框、属性表单和属性页、GDI对象、用户界面更新、可滚动窗口、分割窗口、命令条等等。WTL类尽量模板化,使用较少实例数据和较...

Global site tag (gtag.js) - Google Analytics