jscalendar-1.0中文解决方法


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

jscalendar 1.0 显示中文, 在IE7中位置不对,mojoPortal中应用
// full month names
jscalendar 1.0 显示中文, 在IE7中位置不对,mojoPortal中应用
Calendar._MN = new Array
jscalendar 1.0 显示中文, 在IE7中位置不对,mojoPortal中应用(
"\u4e00\u6708",
jscalendar 1.0 显示中文, 在IE7中位置不对,mojoPortal中应用 
"\u4e8c\u6708",
jscalendar 1.0 显示中文, 在IE7中位置不对,mojoPortal中应用 
"\u4e09\u6708",
jscalendar 1.0 显示中文, 在IE7中位置不对,mojoPortal中应用 
"\u56db\u6708",
jscalendar 1.0 显示中文, 在IE7中位置不对,mojoPortal中应用 
"\u4e94\u6708",
jscalendar 1.0 显示中文, 在IE7中位置不对,mojoPortal中应用 
"\u516d\u6708",
jscalendar 1.0 显示中文, 在IE7中位置不对,mojoPortal中应用 
"\u4e03\u6708",
jscalendar 1.0 显示中文, 在IE7中位置不对,mojoPortal中应用 
"\u516b\u6708",
jscalendar 1.0 显示中文, 在IE7中位置不对,mojoPortal中应用 
"\u4e5d\u6708",
jscalendar 1.0 显示中文, 在IE7中位置不对,mojoPortal中应用 
"\u5341\u6708",
jscalendar 1.0 显示中文, 在IE7中位置不对,mojoPortal中应用 
"\u5341\u4e00\u6708",
jscalendar 1.0 显示中文, 在IE7中位置不对,mojoPortal中应用 
"\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:
jscalendar 1.0 显示中文, 在IE7中位置不对,mojoPortal中应用        var cp = document.createElement("div");
jscalendar 1.0 显示中文, 在IE7中位置不对,mojoPortal中应用        
var s = cp.style;
jscalendar 1.0 显示中文, 在IE7中位置不对,mojoPortal中应用        s.position 
= "absolute";
jscalendar 1.0 显示中文, 在IE7中位置不对,mojoPortal中应用        s.right 
= s.bottom = s.width = s.height = "0px";
jscalendar 1.0 显示中文, 在IE7中位置不对,mojoPortal中应用        document.body.appendChild(cp);
jscalendar 1.0 显示中文, 在IE7中位置不对,mojoPortal中应用        
var br = Calendar.getAbsolutePos(cp);
jscalendar 1.0 显示中文, 在IE7中位置不对,mojoPortal中应用        document.body.removeChild(cp);
 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>");

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


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

相关文章:

  • 2021-07-14
  • 2021-10-04
  • 2022-12-23
  • 2021-09-16
  • 2022-12-23
  • 2022-12-23
  • 2021-08-12
猜你喜欢
  • 2022-12-23
  • 2021-12-24
  • 2022-12-23
  • 2022-12-23
  • 2021-08-31
  • 2022-12-23
  • 2022-01-24
相关资源
相似解决方案