我正在对jsp进行ajax调用,以呈现我作为pdf发送的html内容。在jsp中,我有一些未被调用的警报语句。是因为我正在制作ajax请求吗? 我不想在js的else块中使用警报。
var objHTTP = new XMLHttpRequest();
objHTTP.open("post", "myJspToRenderAsPdf.jsp", true);
objHTTP.setRequestHeader("Content-type", "text/html");
objHTTP.responseType = 'blob';
objHTTP.onload = function(event) {
if (objHTTP.status == 200) {
/*
Code to download pdf
*/
} else {
alert('PDF was not generated');
}
};
objHTTP.send(strData);
jsp代码:
<%
if(something.equals("true")){
%>
<script language = "javascript">
alert("alert not working");
</script>
<%
}
%>
答案 0 :(得分:0)
从异步调用返回的脚本不会被javascript引擎评估。你最好的办法是明确地描述你的返回脚本。通过调用javascript eval方法。
像这样的东西
objHTTP.onload = function(event) {
if (objHTTP.status == 200) {
document.getElementById("SomeDIv").innerHTML = xhr.responseText;
eval(document.getElementById('toExecute').innerHTML); // Relavent for You
/*
Code to download pdf
*/
} else {
alert('PDF was not generated');
}
};
在JSP中
%>
<script id="toExecute" language = "javascript">
alert("alert not working");
</script>
<%
以上行eval(...)
将评估您的JavaScript,您可以收到提醒。