var html = "<div onclick=\" openUrl( ' <s:url value='%{resUrl}'/>' ) \"></div>"
document.getElementById("main").innerHTML = html
最外面的那个双引号是表示一个字符串变量的意思,而被包在里面的双引号就不起作用,只有在页面显示的时候才会起作用,也就是说js不会认为第一个双引号和第二个双引号是一对,会认为</div>"这个双引号才是结尾,因为中间的被"\"转义了。
openUrl函数中的第一对单引号是表示字符串的意思,你省去也不会报错,中间那一对则是标签的属性需要。
最后的问题说明对struts的标签不熟,可以看下struts的property和ognl表达式,最多半个小时可学会。