我有这个JS:
<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)
这里出了什么问题?
答案 0 :(得分:2)
正在创建script
标记,但随后会从服务器加载脚本。在这两个事件之间调用了callthis()
;也就是说,在脚本完全加载之前,该方法不存在。
使用脚本标记的.onload
事件延迟调用callthis()
,直到脚本完全加载为止,如文档here所述。