自己写了个基于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
分享到:
相关推荐
多种编辑方式支持包括弹出表单编辑、打开tab标签编辑、网格内行编辑、网格内表单编辑 (9)支持表单字段自定义,包括可编辑性自定义、控件类型和宽度自定义、字段验证自定义 (10)支持单据编码规则自定义 (11)...
菜单操作:主菜单、右键弹出式菜单、功能操作 按钮操作:控制足球平移操作、控制物体旋转、平移操作 光照材质:针对 Baymax 纹理映射:针对球体 gluSphere 贴图 4、运行效果及项目使用文档详见:...
Chrome Frame 会把最新版的Chrome Webkit 内核和JavaScript 引擎注入到IE中, IE浏览器将获得Chrome的性能和功能 目录 摘要 I ABSTRACT II 专业名词清单 III 第一章 绪论 1 1.1 研究背景与意义 1 1.2国内外相关...
2, 提供了修改功能,右侧的列表框,双击就可以弹出修改对话框 3, 提供加的次数统计,你可以不怕漏输,错输了。 4, 对于数字输入有校验,如果输入非数字,有提示。 5, 提供“和”值的复制功能。 四、效果: 1...
8. 给JTree添加右键弹出菜单 61 9. 关于JTree的展开 61 10. 如何遍历JTree 62 (五) JTree右键菜单实现编辑、添加、删除节点 63 Test.java源代码 63 (六) 功能齐全的JTree例子 66 TreeEditTest.java源代码 66 (七) ...
- 弹出搜索框遍历子文件夹递归搜索 - session key 加入kod_前缀 避免和其他系统key冲突 - 编辑器选中优化 选择鼠标到窗口外事件处理 ####fix bug:(bug解决和程序优化) - backspace后退截获浏览器事件,作为...
设计时我尽可能设想各种边界条件,如记录为空,输入为空,输入出错等,当输入的信息满足这些边界条件时,将会弹出一个提示框提醒用户,以便用户能及时地做出修改。添加的信息将全部存储到数据库中。 在窗体上放置多...
不弹出脚本错误提示框:在浏览某些网页时会出现脚本错误,要避免这个问题可以在MyIE选项中选中“不弹出脚本错误对话框”. 本地文件浏览:在工具栏上选择文件按钮,会出现一个类似文件管理器的窗口,其中列出了你...
紧接着就会有一个判断,用来确定该链表中是否只有一项,如果链表中保存了多个文档模版,则会弹出一个对话框,来让我们选择到底是使用哪一套文档模版来构建应用程序,相信大家也都见到过这种情况吧。对了,还有一点要...
现在已经完成QQ主界面的外观实现与美化了,接下来我们通过VC向导添加一个对话框资源并添加相应的类,命名CtalkDlg类,其功能是聊天对话框的对话窗口,也就是当我们双击用户列表的其中一个用户后弹出的聊天窗口....
WTL为众多用户界面元素提供支持,包括框架窗口和弹出窗口、MDI、标准和通用控件、通用对话框、属性表单和属性页、GDI对象、用户界面更新、可滚动窗口、分割窗口、命令条等等。WTL类尽量模板化,使用较少实例数据和较...
AnimationPopup 动画Popup弹出窗口。 BackgroundLinearGradientBrushDemo 使用渐变画刷填充背景示例。 BindingSliderDemo 使用Silder滑动条控件。 ButtonBaseDemo 使用Button控件的ButtonBase基类。 ...
WTL为众多用户界面元素提供支持,包括框架窗口和弹出窗口、MDI、标准和通用控件、通用对话框、属性表单和属性页、GDI对象、用户界面更新、可滚动窗口、分割窗口、命令条等等。WTL类尽量模板化,使用较少实例数据和较...