当前位置: 代码迷 >> Web前端 >> 在IE上面指定表单编码
  详细解决方案

在IE上面指定表单编码

热度:75   发布时间:2012-11-04 10:42:42.0
在IE下面指定表单编码

< HTML > 
< HEAD > 
     < meta  http-equiv =content-type  content ="text/html; charset=GB2312" > 
     < SCRIPT  LANGUAGE ="JavaScript" > 
         var  isIE =!! window.ActiveXObject; 
         if (isIE  &&  document.charset.toLowerCase() != " GB2312" )location.reload( false ); 
         
     </ SCRIPT > 
     < TITLE > encode before form post </ TITLE > 
     < META  NAME ="Author"  CONTENT ="emu" > 
</ HEAD > 
< BODY > 
     < form  action ="#"  accept-charset ="iso-8859-1"  onsubmit ="if(isIE)document.charset='iso-8859-1'" > 
         < input  name ="test"  value ="中文"  readonly > 
         < input  type =submit > 
     </ form > 
</ BODY > 
</ HTML >
?简单的讲,就是在表单发送前告诉IE说当前页面是GB2312编码就行了:?

?<form accept-charset="GB2312" onsubmit="if(isIE)document.charset='GB2312'">?
accept-charset="GB2312" 是写给其他没那么笨的浏览器看的。?

IE为了表现它确实是一傻到底,不但在设置document.charset的时候不会用新的编码解释页面,还会在前进后退(我特地用#作为action来实现后退)的时候又尝试用新的编码去解释页面?。不过还好,可以用脚本判断出来,还可以用脚本刷新一下页面解决这个问题:?
if(isIE && document.charset!="utf-8")location.reload(false);?

  相关解决方案