今天在代码中写了如下一段:
<script
language="javascript" type="text/javascript">
<!--
function Play(url)
{
//alert(url);
var rtn = showModalDialog("PlayMovies.aspx?url=" + url, window,
"dialogWidth:640px; dialogHeight:480px; status:0;
help:0;scroll:0;");
}
//-->
</script>
<a
href='javascript:Play("<%#Server.UrlEncode(Eval("FileName").ToString())%>");'>在线观看</a>
代码非常简单,可实际运行的时候(文件名是中文或者非ASCII字符时),总是不能正常运行。调试,查看源文件,经对比发现转义出来也是正确的,但在脚本中,alert出来却不正确。将代码修改为如下后正确:
<a
onclick='javascript:Play("<%#Server.UrlEncode(Eval("FileName").ToString())%>");'
href="#">在线观看</a>
其实,并没有改变什么,写代码时也没想太多。我想是因为浏览器本身在处理href中的东西时已经做了转换(浏览器已经使用Utf-8发送URL请求了。奇怪的是为什么转换不正确,或者是javascript的编码与浏览器不一致)。
尽管问题很简单,但还是记录一下。留作备查。