2012-10-30 129 views
4

我試圖加載使用

$.getScript('http://d3js.org/d3.v2.js', function(data, textStatus) { console.log(textStatus); return true });

這是正確返回「成功」狀態的d3js腳本。

我已經設置

$.ajaxSetup({ 
    cache: true, 
    async: false 
}); 

,以使文件試圖使用它之前完全加載。

但我在控制檯窗口中看到「TypeError:names.map(...)。join不是函數」。

有沒有人遇到過這種情況?有什麼特別的,我需要做的是讓文件加載正確嗎?

我也試過

var se = document.createElement('script'); 
se.type = "text/javascript"; 
se.src = "http://d3js.org/d3.v2.js"; 
document.getElementsByTagName('head')[0].appendChild(se); 

具有相同的結果。

我有

<script src="http://d3js.org/d3.v2.js"></script> 

沒有問題,但在此應用中,它不是一個選項。

+0

我無法重現錯誤。嘗試這樣做:打開您的瀏覽器JS控制檯,粘貼第一個代碼片段並執行它。在我的瀏覽器(FF和Chrome)中,這不會導致錯誤消息。如果在你的情況下發生了同樣的情況,那麼可能是因爲你的代碼中某個地方的問題導致了錯誤。 – Henrik

+1

你能爲此創建一個jsfiddle嗎?我無法重新創建它 - 請參閱http://jsfiddle.net/mccannf/EhESp/4/ – mccannf

回答

0

嘗試啓動在回調函數

$.getScript('http://d3js.org/d3.v2.js', function(data, textStatus) { 

//Start Using d3 functions here. 

return true 

}); 

你需要確保腳本加載工作...