我寫了一個小部件,我包括在此類網頁:JavaScript插入腳本與異步並使用它的功能?
<script type="text/javascript">
var _sid = '1';
(function() {
var se = document.createElement('script'); se.type = 'text/javascript'; se.async = true;
se.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://') + 'dev.domain.com/widget/hello.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(se, s);
})();
</script>
現在我想找到一種方法來調用內部存在hello.js
其功能,目前看起來是這樣的:
var widget = function() {
function setName(a) {
console.log(a);
}
return widget;
}();
所以我想能夠打電話給setName像這樣:widget.setName("Andy")
...從嵌入式頁面,但由於某種原因,我得到「小部件是未定義的」。
任何想法我做錯了什麼?
Alosyius這是否涉及以任何方式jQuery的 - 不只是批准編輯的,但細看,並拒絕他們,如果他們沒有任何意義! BtT:因爲你加載你的腳本異步,你必須先檢查,如果它已經完成加載。 – Christoph
我不想在任何情況下使用任何jQuery :) – Alosyius
您不附加負載事件處理程序到腳本。當加載事件處理程序運行時,腳本完全可用,您可以調用腳本中定義的函數。 –