jscalendar 1.0 显示中文, 在IE7中位置不对,mojoPortal中应用
  TnD0WQEygW8e 2023年11月09日 30 0

jscalendar-1.0中文解决方法


(1)jscalendar-1.0不支持中文是由于没有设置每周的开始日期

修改方法是在lang目录中的文件calendar-cn_utf8.js(或cn_utf8.js,calendar-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:

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

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.js,calendar-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中应用_javascript_02




ref:

http://www.dynarch.com/forums/1993

http://javajiao.javaeye.com/blog/184014

http://blog.donews.com/shanyou/archive/2005/02/10/272908.aspx














【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月09日 0

暂无评论

推荐阅读
  2Vtxr3XfwhHq   2024年05月17日   44   0   0 Java
  8s1LUHPryisj   2024年05月17日   41   0   0 Java
  aRSRdgycpgWt   2024年05月17日   43   0   0 Java
TnD0WQEygW8e