在腳本文件中,我必須動態地導入另一個腳本並使用其中定義的函數和變量。在運行時加載腳本並確保加載腳本
現在,我將它添加到頁面的HEAD
部分,但在添加它之後,外部腳本中定義的函數和變量不會被加載並準備好使用。我該怎麼做,並確保腳本完全加載?
我試過使用script.onreadystatechange
和script.onload
回調,但我遇到了一些瀏覽器兼容性問題。
我該怎麼做,儘可能安全,與純JS和體面的瀏覽器兼容性?
樣品:
uno.js:
var script = document.createElement("script");
script.src = "dos.js";
script.type = "text/javascript";
document.getElementsByTagName("head")[0].appendChild(script);
alert(outerVariable); // undefined
dos.js:
var outerVariable = 'Done!';
sample.html
<html>
<head>
<script type="text/javascript" src="uno.js"></script>
</head>
...
</html>
爲什麼不叫你從加載腳本的功能?通過這種方式,無論狀態更改回調問題如何,我都會知道它會被加載(我也是這樣做的,因爲類似的問題)。 –
我不確定它足夠安全。但是如果我沒有選擇的話,我會去做的。 – everton
你有什麼兼容性問題? – putvande