username
大部分时间都可以正常工作,但在生产服务器上,它不是100%。它说<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="a.js"></script>
</head>
<body>
<script>
functionFromAJS();
</script>
</body>
</html>
不存在,如果没有及时加载.js就没问题。但那该怎么办?
答案 0 :(得分:2)
编辑:只要在函数调用之前加载了要嵌入的脚本,使用window.onload函数就不应该有任何区别。然后a.js文件将在<script>functionFromAJS();</script>
之前加载,如果存在,你应该能够执行该函数。
尝试使用:
<script>
window.onload = function() {
functionFromAJS();
};
</script>
这样在文档完全加载之前不会调用该函数。 或者,如果您使用的是jQuery,则可以使用:
<script>
$(document).ready(function() {
functionFromAJS();
});
</script>
答案 1 :(得分:1)
如果该功能不存在,那么不是文件没有及时加载,那么文件根本就没有加载。
当浏览器遇到用于加载文件的脚本标记时,它将停止解析页面,直到文件被加载,或者直到文件加载失败。在浏览器完成加载文件的尝试之前,永远不会调用functionFromAJS
。
如果文件无法加载,那么您无能为力。您可以在调用之前检查该函数是否存在以避免错误。您甚至可以尝试再次加载脚本,但如果第一次失败则可能会失败。