2013-10-04 38 views
0

我有這個JS:的JavaScript加載其他腳本 - 通話功能 - 未定義

<script type="text/javascript"> 
var aaascript = document.createElement('script'); aaascript.type = 'text/javascript'; 
aaascript.src = ('https:' == document.location.protocol ? 'https://xxx' : 'http://xxx') + '/aaa.js'; 
var aaas = document.getElementsByTagName('script')[0]; aaas.parentNode.insertBefore(aaascript,aaas); 
callthis('somevalue'); 
</script> 

此代碼生成一個腳本標記,並將其插入到頁面。在腳本中,aaa.js是函數callthis。但是當我打電話的功能有這個錯誤:

Uncaught ReferenceError: callthis is not defined (anonymous function) 

這裏出了什麼問題?

+1

最有可能是由於你在運行時通過JavaScript加載它的事實,它不會被解析,因爲你沒有可用的方法。需要一些測試,但。您是否收到任何錯誤或者是否有可用的變量?如果可能,請考慮使用此http://stackoverflow.com/questions/3261408/good-practice-method-for-loading-javascript-via-ajax。 –

+0

不,沒有其他錯誤。我不能使用jQuery在這種情況下,需要普通js – Danzzz

+0

西蒙有一個點,這可能是你在找什麼。 –

回答

2

正在創建script標記,但腳本將從服務器加載。 callthis()正在這兩個事件之間被調用;也就是說,在腳本完全加載之前,所以該方法不存在。

使用腳本標記的.onload事件來延遲調用callthis(),直到腳本完全加載爲止,如文檔here所述。

+0

謝謝,解決了它... – Danzzz

+0

太棒了,很高興幫助。 –