使用javascript动态添加html变量

时间:2013-02-20 14:50:36

标签: javascript html ajax variables

我想根据用户选择的数字添加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什么都不返回,我的变量没有被创建。任何想法?

非常感谢!!

1 个答案:

答案 0 :(得分:1)

HTML没有变量,<script>中没有更深嵌套范围的任何变量都可以在window对象之外进行简单定义。

不要试图插入HTML,只需使用:

window.cal3 = new CalendarPopup();

然后任何其他脚本现在或以后都可以访问此变量。