2013-02-20 69 views
-1

我想根據用戶選擇的數字添加html變量:「<script>var var1 = new CalendarPopup();</script>」。目前,我有一個想改變我的標記通過改變內部HTML像這樣添加變量的AJAX設置:用javascript動態添加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任何回報而我的變化不會被創造出來。有任何想法嗎?

非常感謝!

+2

這是一個JavaScript變量,而不是HTML變量。爲什麼不在腳本中創建JS? – zzzzBov 2013-02-20 14:52:46

+1

你真的超越了這一點。 – JJJ 2013-02-20 14:53:22

+0

'window.cal3 = new CalendarPopup();'。完成。 – 2013-02-20 14:55:04

回答

1

HTML沒有變量,並且沒有深層嵌套作用域的<script>中定義的任何變量都可以簡單地從window對象中定義出來。

,而不是試圖插入HTML,只需使用:

window.cal3 = new CalendarPopup(); 

那麼任何其他腳本可以現在或稍後訪問這個變量。

+0

感謝它的魅力! – Benchy 2013-02-20 15:06:49