今天在代码中写了如下一段:

<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的编码与浏览器不一致)。

    尽管问题很简单,但还是记录一下。留作备查。
Posted on 2007-11-06 17:12  dotnba  阅读(3504)  评论(1)    收藏  举报