页面内容是js但是文件名是zhtml,高亮显示会有问题,解决方法

最近我在改写一些前台头部页面,整个页面都是用js来写的,这样写的好处是别的页面调用的时候就特别方便。但是这样写有个问题就是,我们拼接字符串的时候

字体的高亮显示与JS高亮显示不一致,导致我们很难知道自己拼接的到底对不对,为了解决这个问题,可以把整个页面的内容用<script type="text/javascript"></script>

包起来。红色字体部分之所以这样写是因为这两个函数在页面中可能多次被用到,因此单独把它们拿出来,页面中哪里用到它们了就拼接起来。

下面蓝色字体部分就是拼接的字符串。

特别注意:在整个页面加上<script>是为了拼接字符串时看着方便,不容易出错,改完页面后一定要记得把<script>删掉!!!!

现在我把代码贴出来

<script type="text/javascript">


<z:set var="UserData" value="${$User()}"/>
<z:if condition="${empty UserData}">
document.write('<div id="LoginForExam"></div>');

var queryString='${getQueryString(Request,"ksw",true)}';
var referer='${getReferer(Request,true)}';

document.getElementById('LoginForExam').innerHTML = "<span>人民卫生出版社旗下网站&nbsp;&nbsp;国内最权威医学考试辅导平台!&nbsp;&nbsp;</span>"
+"<a href='${var("ssoURL")}?"+queryString+"Referer="+referer+"'>请登录</a>&nbsp;&nbsp;"
+"<a href='${var("ssoURL")}regist?${getQueryString(Request,"ksw",true)}Referer=${getReferer(Request,true)}'>免费注册</a>";

</z:if>
<z:else>
  <z:if condition="${UserData.Status != 0}">
    var ssoURL = '${var("ssoURL")}';
 var branch = '${UserData.BranchInnerCode}';
 document.getElementById('LoginForExam').innerHTML = "<span>人民卫生出版社旗下网站&nbsp;&nbsp;国内最权威医学考试辅导平台 &nbsp;&nbsp;</span>"
 +"欢迎您&nbsp;&nbsp;${UserData.UserName}&nbsp;&nbsp; <a href='${var("ssoURL")}Logout.jsp?'+queryString+'Referer=${getReferer(Request,true)}'>退出</a>";
 
 String.prototype.trim = function(){
  return this.replace(/(^\s*)|(\s*$)/g,"");
 } 
 var Cookie = {};//Cookie操作类,支持大于4K的Cookie
 
 Cookie.Spliter = "_ZVING_SPLITER_";

Cookie.get = function(name){
  var cs = document.cookie.split("; ");
  for(i=0; i < cs.length; i++){
   var arr = cs[i].split("=");
   var n = arr[0].trim();
   var v = arr[1]?arr[1].trim():"";
   if(n==name){
    return decodeURI(v);
   }
 }
 return null;
}

Cookie.set = function(name, value, expires, path, domain, secure, isPart){
 if(!isPart){
  var value = encodeURI(value);
 }
 if(!name || !value){
  return false;
 }
 if(!path){
  path = "/";//特别注意,此处是为了实现不管当前页面在哪个路径下,Cookie中同名名值对只有一份
 }
 
  if(!domain){
  //path = "www.ipmph.com";
 }
 path = path.replace(/^\w+:\/\/[.\w]+:?\d*/g, '');//特别注意,此处是为了实现不管当前页面在哪个路径下,Cookie中同名名值对只有一份
 if(expires!=null){
   if(/^[0-9]+$/.test(expires)){
     expires = new Date(new Date().getTime()+expires*1000).toGMTString();
  }else{
   var date = parseDate(expires);
   if(date){
    expires = date.toGMTString();
   }else{
     expires = undefined;
    }
  }
 }
 if(!isPart){
   Cookie.remove(name, path, domain);
 }
 var cv = name+"="+value+";"
  + ((expires) ? " expires="+expires+";" : "")
  + ((path) ? "path="+path+";" : "")
  + ((domain) ? "domain="+domain+";" : "")
  + ((secure && secure != 0) ? "secure" : "");
  if(cv.length < 4096){
  document.cookie = cv;
 }else{
  var max = Math.ceil(value.length*1.0/3800);
  for(var i=0; i<max; i++){
   if(i==0){
    Cookie.set(name, '^'+Cookie.Spliter+'|'+max+'$'+value.substr(0,3800), expires, path, domain, secure, true);
   }else{
    Cookie.set(name+Cookie.Spliter+i, value.substr(i*3800,3800), expires, path, domain, secure, true);
   }
  }
 }
  return true;
}

Cookie.remove = function(name, path, domain){
 var v = Cookie.get(name);
  if(!name||v==null){
   return false;
  }
  if(encodeURI(v).length > 3800){
  var max = Math.ceil(encodeURI(v).length*1.0/3800);
  for(i=1; i<max; i++){
   document.cookie = name+Cookie.Spliter+i+"=;"
    + ((path)?"path="+path+";":"")
    + ((domain)?"domain="+domain+";":"")
    + "expires=Thu, 01-Jan-1970 00:00:01 GMT;";
  }
 }
 document.cookie = name+"=;"
  + ((path)?"path="+path+";":"")
  + ((domain)?"domain="+domain+";":"")
  + "expires=Thu, 01-Jan-1970 00:00:01 GMT;";
 return true;
}

function parseDate(str){//解析形如yyyy-MM-dd hh:mm:ss的日期字符串为Date对象
 var regex = /^(\d{4})-(\d{1,2})-(\d{1,2})(\s(\d{1,2}):(\d{1,2})(:(\d{1,2}))?)?$/;
 if(!regex.test(str)){
  //alert("DateTime.parseDate:错误的日期"+str);
 }
 regex.exec(str);
 var y = RegExp.$1;
 var M = RegExp.$2;
 var d = RegExp.$3;
 var h = RegExp.$5;
 var m = RegExp.$6;
 var s = RegExp.$8;
 var date = new Date();
 date.setYear(y);
 date.setMonth(M-1);
 date.setDate(d);
 if(!h){
  h = 0;
  m = 0;
 }  
 date.setHours(h);
 date.setMinutes(m);
 if(!s){
  s=0;
 }
 date.setSeconds(s);
 return date; 

function _kp(){
  var key = "${UserData.UserName}.KeepAlvie";
  var time = Cookie.get(key);
  var current = new Date().getTime();
  if(!time){
    Cookie.set(key,current);
   var s = document.createElement("script");
    s.src = "${var("ssoURL")}/KeepAlive.jsp?UserName=${UserData.UserName}";
    (document.getElementsByTagName("head")[0]||document.getElementsByTagName("body")[0]).appendChild(s);
  }else if(current - time>=60*1000){
    Cookie.set(key,current);
   var s = document.createElement("script");
    s.src = "${var("ssoURL")}/KeepAlive.jsp?UserName=${UserData.UserName}";
    (document.getElementsByTagName("head")[0]||document.getElementsByTagName("body")[0]).appendChild(s);
  }
 }
  if(branch.length>4){
    setInterval(_kp,60*1000);
  }
  </z:if>
  <z:else>
   alert("对不起,您的账户已被禁用,请与管理员联系!");
  window.location="${var("ssoURL")}ssoLogout";
  </z:else>
</z:else>
 
</script>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值