网页里放了一个框架 frame:
<iframe id="MapFrame" runat="server" src='' frameborder='0' scrolling='no' width=440px height=400px ></iframe>我写了一个js函数,动态的改变这个框架的地址,函数中有一个参数,为地址的一部分:
    <script language="javascript" type="text/javascript" >
        function LoadFrame(strUrl)
        {
            MapFrame.src="http://XXXX/channel.jsp?city=%e9%9d%92%e5%b2%9b%e5%b8%82&busName=" + strUrl + "&sub=1";
        }
    </script>我在后台动态的写个链接,传入参数,调用这个函数,以达到目的:
LabMapLink.Text = "<a href='javascript:LoadFrame(用户(A-B))'>" + "用户(A-B)" +"</a>";参数是“用户(A-B)”,肯定是这个格式,只是具体内容会有变化。我现在的有两个困惑:1.现在运行总是提示缺少")",是不是js参数中不能有括号啊,但是这括号肯定要有的,如何解决?
2.我写的代码有问题嘛?我没学过js,是比着写的,请高手指点。

解决方案 »

  1.   

    function LoadFrame(strUrl)
    {
       alert(strUrl);
    }
    看下是strUrl是什么
      

  2.   

    最好用一个字符串传递参数, 然后在JS函数里对参数用户(A-B)作一下修改,实际当中很少是用中文来传递参数的,建议你最好改成英文的
      

  3.   

    你js里写的参数是个string型的...可是你在调用的时候不晓得是传了什么数据...
    应该写成这样:LabMapLink.Text = " <a href='javascript:LoadFrame('用户(A-B)')'>" + "用户(A-B)" +" </a>"; 
    如果是通过计算然后得到格式为"用户(A-B)”,那可以写成这样:
    LabMapLink.Text = " <a href='javascript:LoadFrame('"+用户(A-B)+"')'>" + "用户(A-B)" +" </a>"; 
    如果在调用js方法时,如果传的是string数据...应该加引号...传对像就不要了...
      

  4.   

    万分感谢大家,我按照你们的提示,后台改成这样:LabMapLink.Text = "<a href='javascript:LoadFrame('" + Server.UrlEncode("用户(A-B)") + "')'>用户(A-B)</a>";结果,运行后前台变成了:
    <a href='javascript:LoadFrame('5%e8%b7%af(%e8%83%9c%e5%88%a9%e6%a1%a5-%e7%81%ab%e8%bd%a6%e7%ab%99)')'>用户(A-B)</a>点这个链接,只运行了"'javascript:LoadFrame('"晕了晕了,呵呵
      

  5.   

    LabMapLink.Text = "<a href='javascript:LoadFrame(\'" + Server.UrlEncode("用户(A-B)") + "\')'>用户(A-B)</a>";try this.
      

  6.   

    加上"\'" 也一样,还是点这个链接,只运行了"javascript:LoadFrame(" 
      

  7.   

    错误原因是' 和 " 的组合配对的问题。
    把一个'改为\" ,就可以了。如下:
    LabMapLink.Text = "<a href='javascript:LoadFrame(\"" + ....
      

  8.   

    ok了,传到前台了,但是我在前台alert了一下,发现
    '5%e8%b7%af(%e8%83%9c%e5%88%a9%e6%a1%a5-%e7%81%ab%e8%bd%a6%e7%ab%99)
    变成乱码了,如果解决啊?我想把这个串码原样传进去。