/*
* 依赖:jquery,bootstrap
* 一些bootstrap页面的帮助方法
* Copyright (c) 2016 chinaxiaofei@mypc.com
*/
/*【弹出对话框,显示消息或嵌入网址】
* title:对话框标题
* text:对话框提示信息,有src是可为空
* src:对话框嵌入网址,可为空
* nSize12345:对话框尺寸,1小2中3大4加大5全屏,其他值默认中
* sOkCallback:确定回调方法字符串,比如"alert('ok', {json})",{json}可选,如果包含{json}则需要替换为全局变量:_myp2c_bs_OpenDlg_json。
* sOkBtnText:确定按钮文字,''将隐藏确定按钮。
* sCancelBtnText:取消按钮文字,''将隐藏确定按钮。
* nBtnAlign123:按钮位置1左2中3右,默认3。
* sDogText:看门狗勾选文字
* bNoBgClose:无无背景关门功能。
* bNoXbtnClose:无关闭按钮功能。
* nSrcH1234X:iframe的高度控制,1表示300,2表示400,3表示480,4表示600,值大于100时理解为实际像素。
* nDogTimeSeconds:按钮延迟激活秒数。
* sOtherBtnText:其他按钮文字,''将隐藏其他按钮。
* sOtherBtnCallback:其他按钮回调方法字符串,比如"alert('ok')"。
*
* 例如1:_myp2c_bs_OpenDlg('提示信息','提示内容','',1,null,'关闭提示框','','3','',false, false,2);
* 例如2:_myp2c_bs_OpenDlg('确定信息','描述信息','',2,"alert('ok')",'确定','取消','3','',false, false,2);
* 例如3:_myp2c_bs_OpenDlg('嵌入响应式网页框','','www.baidu.com',3,null,'','','3','',false, false,2);
*
*/
_myp2c_bs_OpenDlg_nDogTimeSeconds = 0;
_myp2c_bs_OpenDlg_nDogTimeSeconds_ok = 0;
_myp2c_bs_OpenDlg_nDogTimeSeconds_textok = '';
function _myp2c_bs_OpenDlg_LoopTime() {
var div_ok = $('#myp2c_bs_OpenDlg_ok');
if (_myp2c_bs_OpenDlg_nDogTimeSeconds_ok < _myp2c_bs_OpenDlg_nDogTimeSeconds) {
div_ok.attr('disabled', 'disabled');
div_ok.html("(" + _myp2c_bs_OpenDlg_nDogTimeSeconds_ok + "/" + _myp2c_bs_OpenDlg_nDogTimeSeconds + "秒)");
_myp2c_bs_OpenDlg_nDogTimeSeconds_ok += 1;
setTimeout(_myp2c_bs_OpenDlg_LoopTime, 1000);
}
else {
div_ok.html(_myp2c_bs_OpenDlg_nDogTimeSeconds_textok);
div_ok.removeAttr('disabled');
}
}
//*** 用于为回调方法传递json参数 *** */
var _myp2c_bs_OpenDlg_json = {};
function _myp2c_bs_OpenDlg_GetJson() {
return _myp2c_bs_OpenDlg_json;
}
function _myp2c_bs_OpenDlg_SetJson(j) {
_myp2c_bs_OpenDlg_json = j;
}
//************************************* */
var _myp2c_bs_OpenDlg_win = null;
function _myp2c_bs_OpenDlg(title, text, src, nSize12345, sOkCallback, sOkBtnText, sCancelBtnText, nBtnAlign123, sDogText, bNoBgClose, bNoXbtnClose, nSrcH1234X, nDogTimeSeconds, sOtherBtnText, sOtherBtnCallback, jsonObj) {
try {
//*** 初始化json对象 **/
if (jsonObj) {
_myp2c_bs_OpenDlg_SetJson(jsonObj);
}
//****************** */
var dlg = $('#myp2c_bs_OpenDlg_div');
if (dlg.length > 0) {
dlg.remove();
}
var src_height = '400';
if (nSrcH1234X == 1) { src_height = '300'; }
else if (nSrcH1234X == 2) { src_height = '400'; }
else if (nSrcH1234X == 3) { src_height = '480'; }
else if (nSrcH1234X == 4) { src_height = '600'; }
else if (nSrcH1234X > 100) {
src_height = nSrcH1234X;
}
var html = "
";
dlg = $(html).appendTo('body');
//
if (dlg.length > 0) {
//确定按钮
var btnOk = dlg.find('#myp2c_bs_OpenDlg_ok');
if (sOkBtnText != '') {
btnOk.css('display', '');
btnOk.html(sOkBtnText);
btnOk.off('click');
btnOk.on('click', function (e) {
var callOk = sOkCallback;
if (callOk != '') {
if (callOk.indexOf('{json}' > 0)) {
callOk = callOk.replace('{json}', '_myp2c_bs_OpenDlg_json');
}
}
if (sDogText != '') {
if ($('#myp2c_bs_OpenDlg_dogcheck').is(':checked')) {
_myp2c_bs_OpenDlg_win.hide();
if (callOk != '') {
eval(callOk);
}
}
}
else if (callOk != '') {
if (eval(callOk) !== false) {
_myp2c_bs_OpenDlg_win.hide();
}
}
else {
_myp2c_bs_OpenDlg_win.hide();
}
});
if (nDogTimeSeconds > 0) {
_myp2c_bs_OpenDlg_nDogTimeSeconds = nDogTimeSeconds;
_myp2c_bs_OpenDlg_nDogTimeSeconds_textok = sOkBtnText;
_myp2c_bs_OpenDlg_LoopTime();
}
else if (sDogText != '') {
document.getElementById('myp2c_bs_OpenDlg_dogcheck').checked = true;
}
}
else {
btnOk.css('display', 'none');
}
//其他按钮
if (sOtherBtnText != '') {
var btnOther = dlg.find('#myp2c_bs_OpenDlg_OtherBtn');
btnOther.off('click');
btnOther.on('click', function (e) {
if (sOtherBtnCallback != '') {
if (eval(sOtherBtnCallback) !== false) {
_myp2c_bs_OpenDlg_win.hide();
}
}
else {
_myp2c_bs_OpenDlg_win.hide();
}
});
}
//
var msg = "" + text + "
";
if (src != '') {
msg = "";
}
$('#myp2c_bs_OpenDlg_body').html(msg);
//显示
_myp2c_bs_OpenDlg_win = new bootstrap.Modal(document.getElementById('myp2c_bs_OpenDlg_div'), {
backdrop: (bNoBgClose ? 'static' : true), keyboard: (bNoBgClose ? false : true)
});
_myp2c_bs_OpenDlg_win.show();
}
}
catch (err) {
alert(err);
}
}
/*弹出对话框*/
function myp2c_bs_OpenDlg(title, text, nSize12345, sOkCallback, sOkBtnText, sCancelBtnText, bNoBgClose, bNoXbtnClose) {
_myp2c_bs_OpenDlg(title, text, '', nSize12345, sOkCallback, sOkBtnText, sCancelBtnText, '3', '', bNoBgClose, bNoXbtnClose, '', 0, '', '', null);
}
/*弹出有其他按钮的对话框*/
function myp2c_bs_OpenDlgHaveOtherBtn(title, text, nSize12345, sOkCallback, sOkBtnText, sCancelBtnText, bNoBgClose, bNoXbtnClose, sOtherBtnText, sOtherBtnCallback) {
_myp2c_bs_OpenDlg(title, text, '', nSize12345, sOkCallback, sOkBtnText, sCancelBtnText, '3', '', bNoBgClose, bNoXbtnClose, '', 0, sOtherBtnText, sOtherBtnCallback, null);
}
/*弹出网页框*/
function myp2c_bs_OpenIframe(title, src, nSize12345, sOkCallback, sOkBtnText, sCancelBtnText, bNoBgClose, bNoXbtnClose, nSrcH1234X, jsonObj) {
_myp2c_bs_OpenDlg(title, '', src, nSize12345, sOkCallback, sOkBtnText, sCancelBtnText, '3', '', bNoBgClose, bNoXbtnClose, nSrcH1234X, 0, '', '', jsonObj);
}
/*弹出看门狗信息*/
function myp2c_bs_OpenDog(title, src, nSrcH1234X, nSize12345, sOkBtnText, sDogText, nBtnAlign123) {
_myp2c_bs_OpenDlg(title, '', src, nSize12345, '', sOkBtnText, '', nBtnAlign123, sDogText, true, true, nSrcH1234X, 0, '', '', null);
}
/*弹出看门狗信息规定阅读秒数后才能关闭*/
function myp2c_bs_OpenDogTime(title, src, nSrcH1234X, nSize12345, sOkBtnText, sDogText, nBtnAlign123, nDogTimeSeconds, sOkCallback) {
_myp2c_bs_OpenDlg(title, '', src, nSize12345, sOkCallback, sOkBtnText, '', nBtnAlign123, sDogText, true, true, nSrcH1234X, nDogTimeSeconds, '', '', null);
}
/*弹出输入框,参数callback如:alert({v})*/
var _myp2c_bs_OpenInput_win = null;
function myp2c_bs_OpenInput(title, textLabel, sOkCallback, sOkBtnText, sValue, IsM) {
var dlg = $('#myp2c_bs_OpenInput_div');
if (dlg.length == 0) {
var html = "";
dlg = $(html).appendTo('body');
}
//
if (dlg.length > 0) {
var fm = "" +
"
" +
"" +
(IsM ? "" : "") +
"
"
"
";
$('#myp2c_bs_OpenInput_body').html(fm);
$('#myp2c_bs_OpenInput_title').html((title == '' ? '输入框' : title));
$('#myp2c_bs_OpenInput_ok').html((sOkBtnText == '' ? '确定' : sOkBtnText));
//显示
_myp2c_bs_OpenInput_win = new bootstrap.Modal(document.getElementById('myp2c_bs_OpenInput_div'), {
backdrop: true
});
_myp2c_bs_OpenInput_win.show();
//
$('#myp2c_bs_OpenInput_ok').off('click');
$('#myp2c_bs_OpenInput_ok').on('click', function (e) {
if (sOkCallback != '') {
var val = $('#myp2c_bs_OpenInput_value').val();
if (sOkCallback.indexOf('{v}') > 0) {
sOkCallback = sOkCallback.replace('{v}', 'val');
}
eval(sOkCallback);
}
_myp2c_bs_OpenInput_win.hide();
});
}
}
//回车登录
function myp2c_bs_OpenInput_KeyOk() {
if (event.which == 13) {
$('#myp2c_bs_OpenInput_ok').click();
}
}
/*滚动到指标位置,参数offsetY是整数单位像素表示滚动到id位置时顶部保留的距离*/
function myp2c_bs_ScrollTopId(sDivId, offsetY) {
var div = document.getElementById(sDivId);
if (div) {
myp2c_bs_ScrollTopNum($(div).offset().top - offsetY);
}
}
/*滚动到指标位置*/
function myp2c_bs_ScrollTopNum(scrollTop) {
$("html,body").stop(true);
$("html,body").animate({ scrollTop: scrollTop }, 300);
}