/*iframe弹出层,width和height支持百分比字符*/ var frameui_ui = window.frameui_ui || {}; frameui_ui.dialog = function (params) { var maxmin = false; var width = params.width; if (typeof (width) == "undefined") { width = "100%"; } var height = params.height; if (typeof (height) == "undefined") { height = "100%"; } if (width == "100%") { maxmin = false; } var defaultoption = { type:"iframe", title: "标题", shadeclose: true, target: "self", data:{}, url:"", content: "", callback: "", cancelcallback:"" }; params = extend(defaultoption, params); params.url = geturl(); var target = params.target; var containerid = "uidialogcontainer", titlebarid ="uidialogtitlebar", btnconfirmid = "uidialogconfirmbtn", btncancelid = "uidialogcancelbtn", btnclosebtnid = "uidialogclosebtn"; var alerticon = { alert: ' ', confirm: ' ' }; var $container; //创建容器 function createcontainer() { var $document = document; $container = $document.getelementbyid(containerid); if ($container == null) { $container = $document.createelement("div"); $container.setattribute("id", containerid); $container.setattribute("class", "el-dialog__wrapper el-dialog__" + params.type); $container.setattribute("style", "background: rgba(0, 0, 0,0.1);z-index: 2038;height:100%;overflow:hidden"); var $body = $document.getelementsbytagname("body")[0]; $body.insertbefore($container, ($body.children)[0]); } return $container; } function closedialog() { $container.style.display = "none"; $container.innerhtml = "" } //格式化参数 function geturl() { var url = params.url; var pararmstring = formatparams(params.data); if (url.indexof("?") > 0) { url += "&"; } else { url += "?"; } //console.log(url) return url + pararmstring; } //对象转为参数连接 function formatparams(data) { var arr = []; for (var name in data) { var val = data[name]; if (val == null || val == undefined) { val = ""; } arr.push(encodeuricomponent(name) + '=' + encodeuricomponent(val)); }; return arr.join('&'); } function createdialog() { $container = createcontainer(); var winsize = clientsize(); var winheight = winsize.height; if (height.indexof("%") > 0) { height = parseint((winheight * parseint(height.replace("%", "")) / 100)); } else { height = parseint(height.replace(/[^0-9]/ig, "")); } var margintop = parseint(winheight / 2) - parseint(height / 2); if (margintop <= 0) { margintop = 0; } $container.style.display = "block"; var dialog= ''; $container.innerhtml = dialog; if (params.type == "iframe") { var $loading = document.getelementbyid("_ui-modal-loading-container_"); var $iframe = document.getelementbyid("_ui-modal-iframe-container_") $iframe.onload = function () { $loading.style.display = "none"; }; } if (document.getelementbyid(btncancelid)!= null) { document.getelementbyid(btncancelid).onclick = function () { params.cancelcallback && params.cancelcallback.call(); closedialog(); } }; if (document.getelementbyid(btnconfirmid)!= null) { document.getelementbyid(btnconfirmid).onclick = function () { params.callback && params.callback.call(); closedialog(); } }; //右上角的关闭 if (document.getelementbyid(btnclosebtnid) != null) { document.getelementbyid(btnclosebtnid).onclick = function (e) { stopbubble(e); closedialog(); } }; //标题 if (document.getelementbyid(titlebarid) != null) { document.getelementbyid(titlebarid).onclick = function (e) { stopbubble(e);//阻止冒泡 } }; $container.onclick = function (e) { stopbubble(e); if (params.shadeclose) { closedialog(); } }; } createdialog(); } //关闭弹出层 frameui_ui.closedialog = function () { var $document = document; var containerid = "uidialogcontainer" var $container = $document.getelementbyid(containerid); if ($container != null) { $container.innerhtml = ""; $container.style.display = "none"; } stopbubble(); } function closeself(callback) //关闭弹出层 { if (typeof callback == "function") { try { callback.call(this); } catch (err) { console.log(err); } } try { parent.frameui_ui.closedialog(); } catch (err) { console.log(err); } }