• jscalendar 1.0 显示中文, 在IE7中位置不对,mojoPortal中应用


    jscalendar-1.0中文解决方法


    (1)jscalendar-1.0不支持中文
    是由于没有设置每周的开始日期
    修改方法是在lang目录中的文件calendar-cn_utf8.js(或cn_utf8.jscalendar-zh.js)加上Calendar._FD = 0;
    代码片段如下:
    // short day names
    Calendar._SDN = new Array
    (
    "\u5468\u65e5",
     
    "\u5468\u4e00",
     
    "\u5468\u4e8c",
     
    "\u5468\u4e09",
     
    "\u5468\u56db",
     
    "\u5468\u4e94",
     
    "\u5468\u516d",
     
    "\u5468\u65e5");

    Calendar._FD 
    = 0;   // ADDED THIS LINE

    // full month names
    Calendar._MN = new Array
    (
    "\u4e00\u6708",
     
    "\u4e8c\u6708",
     
    "\u4e09\u6708",
     
    "\u56db\u6708",
     
    "\u4e94\u6708",
     
    "\u516d\u6708",
     
    "\u4e03\u6708",
     
    "\u516b\u6708",
     
    "\u4e5d\u6708",
     
    "\u5341\u6708",
     
    "\u5341\u4e00\u6708",
     
    "\u5341\u4e8c\u6708");

    同时在用到该控件的页面必须加上<link href="css文件" type="text/css" rel="stylesheet" />

    假设web application的编码规则是utf-8,那么js文件中如果有中文就会出现乱码(有可能是其它的页面不正常的情况) ,解决这个问题请在引用javascript的地方加上charset="gb2312"或者charset="big5" 
    例如:<script type="text/javascript" language="javascript" src="scripts/function.js" charset="gb2312"></script>


    (2)Fixed a bug when displaying calendar on IE7
    Added to line 90 of calendar.js
    Calendar.is_ie7 = ( Calendar.is_ie && /msie 7\.0/i.test(navigator.userAgent) );

    Added to line 1396 of calendar.js

    if (Calendar.is_ie7) {
    br.y += window.scrollY;
    br.x += window.scrollX;
    }
    else if (Calendar.is_ie) {
    br.y += document.body.scrollTop;
    br.x += document.body.scrollLeft;
    }
    else {
    br.y += window.scrollY;
    br.x += window.scrollX;
    }

    LOOK LIKE THIS:
            var cp = document.createElement("div");
            
    var s = cp.style;
            s.position 
    = "absolute";
            s.right 
    = s.bottom = s.width = s.height = "0px";
            document.body.appendChild(cp);
            
    var br = Calendar.getAbsolutePos(cp);
            document.body.removeChild(cp);
            
    if (Calendar.is_ie7) {  //Added begin
            br.y += window.scrollY;
            br.x 
    += window.scrollX;
            }

            
    else if (Calendar.is_ie) {
            br.y 
    += document.body.scrollTop;
            br.x 
    += document.body.scrollLeft;
            }

            
    else {
            br.y 
    += window.scrollY;
            br.x 
    += window.scrollX;
            }
                            //Added end
            //        if (Calendar.is_ie) {
            //            br.y += document.body.scrollTop;
            //            br.x += document.body.scrollLeft;
            //        } else {
            //            br.y += window.scrollY;
            //            br.x += window.scrollX;
            //        }
            var tmp = box.x + box.width - br.x;
            
    if (tmp > 0) box.x -= tmp;
            tmp 
    = box.y + box.height - br.y;
            
    if (tmp > 0) box.y -= tmp;



    (3) For mojoPortal DatePicker:
    除了按上面的要求修改件calendar-cn_utf8.js(或cn_utf8.jscalendar-zh.js)加上Calendar._FD = 0;
    修改calendar.js
    还要做以下改动:
    为 \mojoPortal.Web.Controls\jsCalendarDatePicker.cs 添加  charset=\"gb2312\"

        private void SetupScripts()
            {
                
    this.Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "jscalendarmain","<script type=\"text/javascript\" src=\"" 
                    + ResolveUrl(this.ScriptDirectory + "/calendar.js"+ "\"></script>");

                
    this.Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "jscalendarculture""<script type=\"text/javascript\" src=\""
                    + ResolveUrl(this.ScriptDirectory + "/" + this.LanguageFile) + "\" charset=\"gb2312\"></script>");  //Aimin

                
    this.Page.ClientScript.RegisterClientScriptBlock(this.GetType(),"jscalendarsetup","<script type=\"text/javascript\" src=\"" 
                    + ResolveUrl(this.ScriptDirectory + "/calendar-setup.js"+ "\"></script>");




    ref:
    http://www.dynarch.com/forums/1993
    http://hi.baidu.com/ksir/blog/item/632a2d8169efc5dbbd3e1e1b.html
    http://www.cnblogs.com/haojinguo/archive/2007/12/30/696579.html
    http://javajiao.javaeye.com/blog/184014
    http://blog.donews.com/shanyou/archive/2005/02/10/272908.aspx
  • 相关阅读:
    webservice系统学习笔记9-使用契约优先的方式的一个服务端demo(隐式传Header信息)
    webservice系统学习笔记8-简单的权限校验
    JS获取浏览器高宽度,屏幕分辨率和一些定位空隙等
    基于jquery ui修改的不依赖第三方的背景透明的弹出div
    1个比较简单的使用java反射机制获取前台数据进行数据封装的例子
    J2EE项目集成SAP的BO报表
    php-------unset销毁变量并释放内存
    微信小程序------MD5加密(支持中文和不支持中文)和网络请求(get和post)
    谈谈http与https
    php--------合并2个数字键数组的值
  • 原文地址:https://www.cnblogs.com/emanlee/p/1191888.html
Copyright © 2020-2023  润新知