我想根据用户选择的数字添加html变量:“<script>var var1 = new CalendarPopup();</script>
”。目前我有一个ajax设置,假设通过更改内部html来改变我的标签以添加变量:
<div id="calVar">
<script>
var cal1 = new CalendarPopup();
var cal2 = new CalendarPopup();
</script>
</div>
function addRespDropDownAjax(currentNumberOfDropDown)
{
//Prepare a new ajaxRequest.
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
} else {// code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
//Ajax receiving the response in this function
xmlhttp.onreadystatechange = function()
{
//state 4 is response ready.
//Status 200 is page found.
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
document.getElementById('calVar').innerHTML = '<script>var cal3 = new CalendarPopup();</script>';
alert(document.getElementById('calVar').innerHTML);
}
};
//Send the Ajax request.
xmlhttp.open('GET','mainServlet?command=ajax.AddRespDropDown&NUMBER_OF_DROP_DOWN=' + currentNumberOfDropDown, true);
xmlhttp.send();
}
最后一个警告:document.getElementById('calVar')。innerHTML什么都不返回,我的变量没有被创建。任何想法?
非常感谢!!
答案 0 :(得分:1)
HTML没有变量,<script>
中没有更深嵌套范围的任何变量都可以在window
对象之外进行简单定义。
不要试图插入HTML,只需使用:
window.cal3 = new CalendarPopup();
然后任何其他脚本现在或以后都可以访问此变量。