/** * ajax请求 * @param obj={url:"",data:{},dataType:"",async:"true|false",complete=function(){//请求完成时执行,不管成功或失败都会执行},success:function(result){},error:function(){}} */ /** * 页面局部更新 * @param obj={ele_id:'要更新的元素的ID',selector:'jquery选择器',url:'请求地址',data={//请求参数},complete=function(){//请求完成时执行,不管成功或失败都会执行},success=function(){//请求成功时执行},error=function(){//请求失败时执行}} */ /** * 弹出对话框 * type=0,Loading框 * type=1,消息框 * type=2,提交框 * type=3,询问框 * type=4,自定义按钮组,此类型下可以定义buttonGroup * @param obj={type:0/1/2/3/4(默认1),title:'标题',content:'内容',dom:'dom元素节点的ID',src:'链接地址',request:{url:'链接地址',data:{//参数}}, * hideBt:true|false(默认), * hideCloseBt:true|false(默认), * buttonGroup:[{value:'按扭名称1',styleClass:'样式',click:function(){//按钮点击执行}},{value:'按扭名称2',styleClass:'样式',click:function(){//按钮点击执行}}, ...], * close:function(){//关闭时执行}, * closeEnable:true(默认)|false, * submit:function(){//提交时执行}}, * submitButtonName:'提交按钮显示名称' */ function mag_layer(obj){ //提交按钮默认名称 if(!window.mag_layer_submit_button_name_2){ window.mag_layer_submit_button_name_2=$("#mag_layer_submit_button_2").html(); } if(!window.mag_layer_submit_button_name_3){ window.mag_layer_submit_button_name_3=$("#mag_layer_submit_button_3").html(); } //关闭mag_layer_2 mag_layer_close_2(); var title=obj.title||"";//标题 var content=obj.content||"Loading ... ...";//内容 var type=obj.type||1; var hideBt=obj.hideBt||false; var hideCloseBt=obj.hideCloseBt||false; if(obj.type==0){ type=0; } if(obj.submitButtonName){ $("#mag_layer_submit_button_2").html(obj.submitButtonName); $("#mag_layer_submit_button_3").html(obj.submitButtonName); }else{ $("#mag_layer_submit_button_2").html(window.mag_layer_submit_button_name_2); $("#mag_layer_submit_button_3").html(window.mag_layer_submit_button_name_3); } $("[buttonGroup='0']").hide(); $("[buttonGroup='1']").hide(); $("[buttonGroup='2']").hide(); $("[buttonGroup='3']").hide(); $("[buttonGroup='4']").remove(); if(type==0){ //全都隐藏 }else if(type==4){ //按钮组 if(!hideBt){ if(obj.buttonGroup && obj.buttonGroup.length && obj.buttonGroup.length>0){ for(var i=0;i'+button.value+''); if(button.styleClass){ $("#mag-layer-button-"+i).attr("class",button.styleClass); } if(button.click){ $("#mag-layer-button-"+i).click(function(){ obj.buttonGroup[$(this).attr('id').replace('mag-layer-button-','')].click(); }); }else{ $("#mag-layer-button-"+i).click(function(){}); } } } } if(!hideCloseBt){ $("[buttonGroup='0']").show();//显示右上角的关闭按钮 } }else{ if(!hideBt){ $("[buttonGroup='"+type+"']").show(); } if(!hideCloseBt){ $("[buttonGroup='0']").show();//显示右上角的关闭按钮 } } window.mag_close=obj.close||function(){}; if(obj.closeEnable == undefined || obj.closeEnable == null){ window.mag_closeEnable=true; }else{ window.mag_closeEnable=obj.closeEnable; } window.mag_submit=obj.submit||function(){}; $("#magModalLabel").html(title); if(window.mag_layer_dom){ window.mag_layer_dom.style.display='none'; document.body.appendChild(window.mag_layer_dom); } if(obj.dom){ $("#mag-modal-body").html(""); var dom=document.getElementById(obj.dom); dom.style.display='block'; document.getElementById('mag-modal-body').appendChild(dom); window.mag_layer_dom=dom; }else if(obj.src){ $("#mag-modal-body").html("Loading ..."); $("#mag-layer-button-div").hide(); mag_ajax_update({ele_id:'mag-modal-body',url:obj.src,success:function(){ $("#mag-layer-button-div").show(); }}); window.mag_layer_dom=null; }else if(obj.request){ $("#mag-modal-body").html("Loading ..."); $("#mag-layer-button-div").hide(); mag_ajax_update({ele_id:'mag-modal-body',url:obj.request.url,data:obj.request.data,success:function(){ $("#mag-layer-button-div").show(); }}); window.mag_layer_dom=null; }else{ $("#mag-modal-body").html(content); window.mag_layer_dom=null; } $("body").addClass("modal-open"); $("#magModal").modal('show'); } /** * 关闭对话框 */ function mag_layer_close(){ //alert(window.mag_closeEnable); if(window.mag_closeEnable){ mag_layer_close_2(); window.mag_close(); if(window.mag_layer_close_event_fun){ window.mag_layer_close_event_fun(); }else{ $("#magModal").modal('hide'); $("body").removeClass("modal-open"); } }else{ window.mag_close(); } } /** * 重新设置页面弹出层关闭消失hide的事件动作,将原来的动作(弹出层隐藏/删除)改成执行指定的方法magLayerHideFun */ function mag_reset_layer_close_event(magLayerHideFun){ window.mag_layer_close_event_fun = magLayerHideFun; } /** * Loading 提示窗 * @param msg */ function mag_loading(msg){ var msg=msg||"Loading ..."; mag_layer({type:0,content:msg}); } /** * 弹出对话框2 * type=0 loading * type=1 消息框 * @param obj={type:0|1(默认), * title:'标题',content:'内容', * close:function(){//关闭时执行}} */ function mag_layer_2(obj){ var title = obj.title||""; var content=obj.content||"Loading ... ...";//内容 if(obj.type != undefined && obj.type==0){ $("#mag-madal-close_bt_2").hide(); }else{ $("#mag-madal-close_bt_2").show(); } $("#magModalLabel_2").html(title); $("#modal-body_2").html(content); window.mag_close_2=obj.close||function(){}; $(".modal-backdrop").css("z-index","1051"); $("#magModal_2").show(); } function mag_layer_close_2(){ if($("#magModal_2").is(':hidden') == false){ window.mag_close_2(); $(".modal-backdrop").css("z-index","1040"); $("#magModal_2").hide(); } } /** * 弹出层标签页 * @param obj={ * moreTabName:'更多', * showTabCount:3, * tabs:[ * { * title:'标题',content:'内容',dom:'dom元素节点的ID', * active:true|false, * buttonGroup:[{value:'按扭名称1',styleClass:'样式',click:function(){//按钮点击执行}}] * } * ] * } */ function mag_tablayer(obj){ var moreTabName = obj.moreTabName||'更多'; var showTabCount = obj.showTabCount||3; var activeIndex = 0; for(var i=0;i0){ for(var i=0;i'+tab.title+''; }else if(i==showTabCount-1){ if(obj.tabs.length==showTabCount){ tabTitle += '
  • '+tab.title+'
  • '; }else{ tabTitle += ''; } //content if(i==0){ $("#magTabContent").append('
    '); }else{ $("#magTabContent").append('
    '); } if(tab.dom){ var dom=document.getElementById(tab.dom); dom.style.display='block'; document.getElementById('magTabContent'+i).appendChild(dom); window.mag_tablayer_doms[window.mag_tablayer_doms.length]=dom; }else{ var content = tab.content||'Loading ... ...'; $("#magTabContent"+i).html(content); } //button if(tab.buttonGroup && tab.buttonGroup.length && tab.buttonGroup.length>0){ for(var ii=0;ii'+button.value+''); }else{ $("#mag-tablayer-button-div").append(''); } if(button.styleClass){ $("#mag-tablayer-button-"+i+"-"+ii).attr("class",button.styleClass); } if(button.click){ $("#mag-tablayer-button-"+i+"-"+ii).click(function(){ obj.tabs[$(this).attr('id').replace(/mag-tablayer-button-([0-9]+)-([0-9]+)/g,'$1')].buttonGroup[$(this).attr('id').replace(/mag-tablayer-button-([0-9]+)-([0-9]+)/g,'$2')].click(); }); }else{ $("#mag-layer-button-"+i).click(function(){}); } } } } $("ul#magTab").html(tabTitle); $('#magTabModal .dropdown-menu a[data-toggle="tab"]').on('shown.bs.tab', function (e) { // 获取已激活的标签页的名称 var activeTab = $(e.target).text(); // 获取前一个激活的标签页的名称 var previousTab = $(e.relatedTarget).text(); $("#magTabDropTabSelected").html(activeTab); //显示相应buttongroup var index = $(this).attr("href").replace(/^.+?([0-9]+)$/g,"$1"); $("[magTabButtonGroup]").hide(); $("[magTabButtonGroup='"+index+"']").show(); }); $('#magTabModal #magTab>li>a[data-toggle="tab"]').on('shown.bs.tab', function (e) { // 获取已激活的标签页的名称 var activeTab = $(e.target).text(); // 获取前一个激活的标签页的名称 var previousTab = $(e.relatedTarget).text(); $("#magTabDropTabSelected").html(moreTabName); //显示相应buttongroup var index = $(this).attr("href").replace(/^.+?([0-9]+)$/g,"$1"); $("[magTabButtonGroup]").hide(); $("[magTabButtonGroup='"+index+"']").show(); }); if(activeIndex>0){ $("a[mag-tab-a='"+activeIndex+"']").tab('show'); } $("#magTabModal").modal('show'); } function mag_tablayer_close(){ $("#magTabModal").modal('hide'); } function mag_changePage1(event,pageNum,gotoPageFun){ var event=window.event||event; var el=event.target; var zhi = el.value; if(zhi<=pageNum&& zhi>0 && (/(^[1-9]\d*$)/.test(zhi))){ //alert("gotoPage>>"+zhi); eval(gotoPageFun+"("+zhi+")"); }else{ el.value=""; return false; } } function mag_changePage2(event,pageNum,gotoPageFun){ var event=window.event||event; if (event.keyCode== 13){ var el=event.target; var zhi = el.value; if(zhi<=pageNum&& zhi>0 && (/(^[1-9]\d*$)/.test(zhi))){ //alert("gotoPage>>"+zhi); eval(gotoPageFun+"("+zhi+")"); }else{ el.value=""; return false; } } } /** * 手机号码格式验证 * @param telPhone * @returns {Boolean} */ function mag_telPhoneTest(telPhone){ var rex = new RegExp("^[1][34578][0-9]{9}$"); if (rex.test($.trim(telPhone))) { return true; } return false; } /** * email格式验证 * @param email * @returns {Boolean} */ function mag_emailTest(email){ var rex = new RegExp("^[a-zA-Z0-9-_]{1,}\.?[a-zA-Z0-9-_]{1,}@[a-zA-Z0-9]{1,}\.[a-zA-Z0-9]{2,}(\.[a-zA-Z0-9]{2,})?$"); if (rex.test($.trim(email))) { return true; } return false; } /** * 页面重载 */ function mag_window_location(url){ mag_loading(); window.location=url; } /** * 获取当前期刊URL */ function mag_currentQikanUrl(){ var href=window.location.href+""; if(href.indexOf("/CN/")!=-1){ return href.substring(0,href.indexOf("/CN/")); }else if(href.indexOf("/article/")!=-1){ return href.substring(0,href.indexOf("/article/")); } } /** * * @param successFunction 登录成功后执行该方法 */ function mag_login_dialog(successFunction){ mag_layer({ title:"登录", hideBt:true, src:mag_currentQikanUrl()+"/CN/user/loginDialog.do" }); if(successFunction){ window.mag_login_success=function(){ mag_update_loginStatus(); successFunction(); }; }else{ window.mag_login_success=function(){window.location.reload();}; } window.loginDialog_submitting=false; } function mag_mathJax(){ window.setTimeout(function(){ var script = document.createElement("script"); script.type = "text/javascript"; script.src = mag_currentQikanUrl() + "/js/mathJax3.0/tex-mml-svg.js"; //var config = 'MathJax.Hub.Config({extensions: ["tex2jax.js"],jax: ["input/TeX", "output/HTML-CSS"], tex2jax: {inlineMath: [ [\'$\',\'$\'] ],displayMath: [ [\'$$\',\'$$\']],processEscapes: true},"HTML-CSS": { availableFonts: ["TeX"] }});'; var config = "MathJax={tex:{inlineMath: [['$', '$'],['$$','$$']]},svg:{fontCache: 'global'}};"; //if (window.opera) {script.innerHTML = config}else {script.text = config} eval(config); document.getElementsByTagName("head")[0].appendChild(script); },1); } function mag_uuid() { var temp_url = URL.createObjectURL(new Blob()); var uuid = temp_url.toString(); URL.revokeObjectURL(temp_url); return uuid.substr(uuid.lastIndexOf('/') + 1); // remove prefix (e.g. blob:null/, blob:www.test.com/, ...) } /** * 请求 * @param obj={ * url:'', * data:{},//post需要携带的参数 * target:'',//目标窗口 * } */ function mag_request(obj){ var form = document.createElement("form"); form.setAttribute("action",obj.url); form.setAttribute("method","post"); if(obj.data){ for(var name in obj.data){ var input = document.createElement("input"); input.setAttribute("type","hidden"); input.setAttribute("name",name); input.setAttribute("value",obj.data[name]); form.appendChild(input); } } if(obj.target && $.trim(obj.target)!=''){ if(isMacOS() && obj.target=='_blank'){ obj.target = "_self"; } form.setAttribute("target",obj.target); } document.body.appendChild(form); form.submit(); } /** 是否苹果手机浏览器 */ function isMacOS(){ var ua = navigator.userAgent; return !!ua.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); } /** * 高级检索标签页 * obj={ * showArticle:true|false;//启用文章检索页 * showJournal:true|false;//启用期刊检索页 * } */ function mag_showAdsearchTabLayer(obj){ if(!obj){ obj = {}; } var tabs = new Array(); if(obj.showArticle){ if($("#mag_adsearchSimple_dom").length>0){ // }else{ $('body').append(''); mag_ajax_update({ ele_id:'mag_adsearchSimple_dom', url:mag_currentQikanUrl()+'/CN/article/advancedSearchSimple.do' }); } tabs[tabs.length]={title:'文章',dom:'mag_adsearchSimple_dom',buttonGroup:[{value:'关闭',styleClass:'btn btn-default',click:function(){mag_tablayer_close();}},{value:'检索',click:function(){mag_advanceSearchSimple_search();}}]}; } if(obj.showJournal){ if($("#mag_journaladsearchSimple_dom").length>0){ // }else{ $('body').append(''); mag_ajax_update({ ele_id:'mag_journaladsearchSimple_dom', url:mag_currentQikanUrl()+'/CN/journal/advancedSearchSimple.do' }); } tabs[tabs.length]={title:'期刊',dom:'mag_journaladsearchSimple_dom',buttonGroup:[{value:'关闭',styleClass:'btn btn-default',click:function(){mag_tablayer_close();}},{value:'检索',click:function(){mag_journalAdvanceSearchSimple_search();}}]}; } mag_tablayer({ showTabCount:3, moreTabName:'其它', tabs:tabs }); } /** * 高级检索,检索词过滤 CN/article/advancedSearch.do * @param value * @returns */ function mag_advSearchValReplace(value){ value = value.replace(/\[/g,"#magzk#"); value = value.replace(/\]/g,"#magze#"); value = value.replace(/\(/g,"#magkk#"); value = value.replace(/\)/g,"#magke#"); value = value.replace(/AND/g,"#maghe#"); value = value.replace(/OR/g,"#maghz#"); value = value.replace(/NOT/g,"#magb#"); return value; } function mag_regEscape(value){ value = value.replace(/\$/g,"\\$"); value = value.replace(/\(/g,"\\("); value = value.replace(/\)/g,"\\)"); value = value.replace(/\*/g,"\\*"); value = value.replace(/\+/g,"\\+"); value = value.replace(/\./g,"\\."); value = value.replace(/\[/g,"\\["); value = value.replace(/\]/g,"\\]"); value = value.replace(/\?/g,"\\?"); value = value.replace(/\\/g,"\\\\"); value = value.replace(/\^/g,"\\^"); value = value.replace(/\{/g,"\\{"); value = value.replace(/\}/g,"\\}"); value = value.replace(/\|/g,"\\|"); return value; } /** * cma-sso已经登录,此方法是将sso用户在本地网站登录 * @param successFunction */ function cmaSso_authorizeLogin(successFunction){ if(successFunction){ window.mag_cma_sso_local_login_success=function(){ mag_update_loginStatus(); successFunction(); }; }else{ window.mag_cma_sso_local_login_success=function(){window.location.reload();}; } window.mag_cma_sso_local_login_status='doing'; $("#mag_cma_sso_login_iframe")[0].src=mag_currentQikanUrl()+"/CN/cma-sso/authorizeLogin.do?t="+new Date().getTime(); cmaSso_authorizeLogin_waiting(10*1000); } /** * cma-sso,本地登录等待中 * @param milliseconds 等待毫秒数,超时则认为验证登录异常/失败。 */ function cmaSso_authorizeLogin_waiting(milliseconds){ var sleepTime = 200; if(milliseconds<=0){ return; }else if(milliseconds<200){ sleepTime = milliseconds }else{ sleepTime = 200; } window.setTimeout(function(){ milliseconds = milliseconds-200; if(window.mag_cma_sso_local_login_status=='complete'){ // console.log('cma-sso登录验证成功,本地也已登录完成。'); }else{ if(milliseconds<=0){ //等待超时,视为验证登录异常 mag_layer({content:'登录异常!'}); }else{ cmaSso_authorizeLogin_waiting(milliseconds); } } },sleepTime); } /** * 与登录状态相关的页面局部更新调整 */ function mag_update_loginStatus(){ //更新登录状态显示 if($("#mag-component-loginStatus").length>0){ mag_ajax_update({ ele_id:'mag-component-loginStatus', url:mag_currentQikanUrl() + '/CN/user/loginStatus.do' }); } var index=0; $("div[mag-component-type='loginStatus']").each(function(){ index++; $(this).attr("mag-loginStatus-id",index); mag_ajax_update({ selector:"div[mag-loginStatus-id='"+index+"']", url:mag_currentQikanUrl() + '/CN/user/loginStatus.do', data:{forward:$(this).attr("forward")} }); }); //更新文章评价 mag_showArticleEstimate(); } //是否是移动端 function ismobile(){ var sUserAgent = navigator.userAgent.toLowerCase(); var bIsIpad = sUserAgent.match(/ipad/i) == 'ipad'; var bIsIphone = sUserAgent.match(/iphone os/i) == 'iphone os'; var bIsMidp = sUserAgent.match(/midp/i) == 'midp'; var bIsUc7 = sUserAgent.match(/rv:1.2.3.4/i) == 'rv:1.2.3.4'; var bIsUc = sUserAgent.match(/ucweb/i) == 'web'; var bIsCE = sUserAgent.match(/windows ce/i) == 'windows ce'; var bIsWM = sUserAgent.match(/windows mobile/i) == 'windows mobile'; var bIsAndroid = sUserAgent.match(/android/i) == 'android'; if(bIsIpad || bIsIphone || bIsMidp || bIsUc7 || bIsUc || bIsCE || bIsWM || bIsAndroid ){ return true; } else { return false; } } //是否是微信 function isWeiXin() { var ua = window.navigator.userAgent.toLowerCase(); if(ua.match(/MicroMessenger/i) == 'micromessenger'){ return true; }else{ return false; } }