错误源于 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. 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语句应该加上 ; 结束符号。
解决方案 »
- 一个Java问题,本人菜鸟求解。
- 求助:关于新浪微博的用户相互关注的关系模型
- java filter里得到struts的actionForm
- Java NullPointerException,大家帮忙看看怎么回事
- struts中的一个标签问题?
- 很白痴的问题javascript的
- 怎 么 用 javaScript 代码 来 实现 提交 表单?
- 我在配置Eclipse时出现一个错误,大家能帮我看看吗(在线等)
- 高分求教!struts的复选框怎么实现?
- JS函数返回值问题
- 用graphics.drawRect()函数画出的矩形框,怎么填充颜色?
- 初到论坛,希望能和这里的兄弟姐妹交个朋友,共同学习JSP
<input type="button" value="abc" onclick=test("<%=contents%>")>
换成
<input type="button" value="abc" onclick="test('<%=contents%>')">
错误:未结束的字符串常量
代码: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>
<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>
"<a href="+"http://www.sina.com"+">新浪</a>" 不是等于 "<a href=http://www.sina.com>新浪</a>" 么。
问题就在于你是在jsp中赋值的,而jsp的转义仅仅对jsp起作用(废话),因此你赋值之后contents的实际值是 <a href="www.sina.com">新浪</a> ,也就是说在输出到html中的时候,转义符号实际已经被消耗掉了。
换言之,你所需要的contents的值是 href=\"www.sina.com\" ,所以你必须这样赋值:
href=\\"www.sina.com\\"
这个问题说穿了还是很简单的,问题是你要在js,html,jsp上转3个弯。