我使用jsp
来渲染一些数据并使用以下代码进行测试:
<html>
<head>
<title>D3 Demo</title>
</head>
<script language="javascript">
function access(){
alert("entered");
var outputjson = "<%=responseJson%>";
alert(outputjson);
}
</script>
<body onload = "access()">
<h1>This is a Heading</h1>
<p><%=responseJson%></p>
</body>
</html>
在浏览器中,我可以告诉body
包含<h1>
和<p>
内容This is a Heading
和Java
变量responseJson
。但我没有弹出任何警报。似乎永远不会调用access
函数。但是在body
中,我确实称之为当页面加载时,它会弹出2个警报。
这里有什么问题?
答案 0 :(得分:0)
我只是发现了问题。
由于responseJson
中的Java
返回JSON
字符串包含""
,因此outputjson
变量实际上存在语法错误,导致access()
1}}方法没有编译。这就是为什么在onload
中,浏览器无法找到名为access
的方法。
通过制作这样的版本(使用单引号):
var outputjson = '<%=responseJson%>';
效果很好。 FYI