2014-09-24 21 views
0

加入,我使用dotnet.highcharts在運行時創建圖表致電運行javascript函數從內部的innerHTML

我使用Ajax調用的接收格式的HTML結果。這是我得到的結果:

<div id='bbb55283bfc3440a96c7ae26e130173f_container'></div><script type='text/javascript'> 
var bbb55283bfc3440a96c7ae26e130173f; 
function TestFunction() { 
    bbb55283bfc3440a96c7ae26e130173f = new Highcharts.Chart({ 
     chart: { renderTo:'bbb55283bfc3440a96c7ae26e130173f_container', defaultSeriesType: 'line' }, 
     title: { text: 'Test' }, 
     xAxis: { categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun'] }, 
     series: [{ data: [12, 23, 1, 9, 34, 54] }] 
    }); 
} 
</script> 

現在我把這個div元素中(其中數據是上面的代碼中):

$(myDiv).innerHtml = data; 

接下來,我需要調用的函數TestFunction()

我該怎麼做?它生活裏面myDiv這樣的:

<div id="chartContainer" style="float:left"> 
    <div id="bbb55283bfc3440a96c7ae26e130173f_container"></div> 
    <script type="text/javascript"> 
     var bbb55283bfc3440a96c7ae26e130173f; 
     function TestFunction() { 
     bbb55283bfc3440a96c7ae26e130173f = new Highcharts.Chart({ 
      chart: { renderTo: 'bbb55283bfc3440a96c7ae26e130173f_container', defaultSeriesType: 'line' }, 
      title: { text: 'Test' }, 
      xAxis: { categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun'] }, 
      series: [{ data: [12, 23, 1, 9, 34, 54] }] 
      }); 
     } 
    </script> 

回答

0

TestFunction不 「活div內」。 JavaScript不是那種標記的一部分。

只要函數定義:

function TestFunction() { 
    // code 
} 

它可以從此爲window對象的全局函數。因此,從其他地方的頁面上,你可以調用它:

TestFunction(); 

當然,如果這是div任何方式重複和你假設內div小號某種功能的命名空間,那麼你」在實踐中會發現情況並非如此。如果函數全局定義再次文檔中的任何地方,那麼第二個定義將簡單地覆蓋第一個。

+0

但爲什麼我無法調用TestFunction()?當我嘗試從控制檯調用它時,我得到「Uncaught ReferenceError:TestFunction is not defined」 – buddybubble 2014-09-24 13:56:55

+0

@buddybubble:您不提供任何關於該問題的信息,所以我只能猜測。看起來很清楚,當你試圖調用它時,函數*還沒有被定義。也許我誤解了,AJAX調用返回的* JavaScript代碼本身*這肯定會引起一些有趣的場景,特別是如果有多個場景的話。但是評估由AJAX返回的JavaScript可能需要一點點詭計。例如:http://stackoverflow.com/questions/8097558/proper-way-to-execute-javascript-returned-via-ajax-no-jquery – David 2014-09-24 14:01:19

+0

我的情況似乎幾乎與你鏈接的一樣。就像我說的,由於ajax調用,我得到了html和js的混合,請參閱我的第一個代碼片段。我正在把這個innerHtml放在div裏面。然後我想調用我剛插入到div – buddybubble 2014-09-24 14:04:57