错误源于 html 和 js,与jsp没有关系。" 是 xml(sgml) 的实体用来表示引号。js并不关心引号是真的引号还是实体。所以以下两者没有区别(指对于js来说):
1. onclick=test("<a href="www.sina.com">新浪</a>")
2. onclick=test("<a href="www.sina.com">新浪</a>")
这样,你看出错误来了吧。正确的做法是用js中escape的方法表达引号,即 \" 。顺便指出几点:
1. script 标签最好写成 <script type="text/javascript">
2. 属性应该加上引号,即 onclick="test('xxx')"
3. 所有的js语句应该加上 ; 结束符号。

解决方案 »

  1.   

    定义一个属性为hidden的input,把jsp里拿到的值放到这个input的value里。然后js处理。这样可以避免一些问题。偶的办法比较土,你可以试试!
      

  2.   

    hax(海曦)说的对,String类型应该用""而不是''。
      

  3.   

    我认为将
    <input type="button" value="abc" onclick=test("<%=contents%>")>
    换成
    <input type="button" value="abc" onclick="test('<%=contents%>')">
      

  4.   

    可是又产生了新的错误
    错误:未结束的字符串常量
    代码:0代码如下:
    <html>
    <script type="text/javascript">
    function test(mycontents)
    {
       document.write(mycontents);
    }
    </script>
    <body>
    <%
     
     String contents="<a href=\"www.sina.com\">新浪</a>";
    %>
    <input type="button" value="abc" onclick="test('<%=contents%>')">
    </body>
    </html>
      

  5.   

    <input type="button" value="abc" onclick="test('"&<%=contents%>&"')">
      

  6.   

    问题已经解决(测试通过)。你的问题主要出在contents变量的定义上!注意“ "" ”的使用!另外,如果你真想连到SINA,HERF那里必须加前缀“ http:// ”!<%@ page contentType="text/html; charset=gb2312" language="java"%>
    <html>
    <script type="text/javascript">
    function test(mycontents)
    {
       document.write(mycontents);
    }
    </script>
    <body><%
     String contents="<a href="+"http://www.sina.com"+">新浪</a>";
    %>

    <input type="button" value="abc" onclick="test('<%=contents%>')">
    </body>
    </html>
      

  7.   

    楼上的,你不过是省略了href属性的引号而已。
    "<a href="+"http://www.sina.com"+">新浪</a>" 不是等于 "<a href=http://www.sina.com>新浪</a>" 么。
      

  8.   

    楼主也太缺乏基本调试能力了。不过也怪我,第一次我说你的问题与jsp无关,不过这次你的问题确实跟jsp有关。
    问题就在于你是在jsp中赋值的,而jsp的转义仅仅对jsp起作用(废话),因此你赋值之后contents的实际值是 <a href="www.sina.com">新浪</a> ,也就是说在输出到html中的时候,转义符号实际已经被消耗掉了。
    换言之,你所需要的contents的值是 href=\"www.sina.com\" ,所以你必须这样赋值:
    href=\\"www.sina.com\\"
    这个问题说穿了还是很简单的,问题是你要在js,html,jsp上转3个弯。
      

  9.   

    sorry,一个错误,应该是 href=\\\"www.sina.com\\\"