我在我的文档的<head/>
中动态加载此javascript文件,如此
<script type="text/javascript">
if (window.screen.width <= 1600)
{
console.log("start");
var jsref1 = document.createElement('script');
jsref1.setAttribute("type", "text/javascript");
jsref1.setAttribute("src", "/javascript/mobileFunction.js");
document.getElementsByTagName("head")[0].appendChild(jsref1);
}
console.log(end)
</script>
在我的所有javascript文件中,我有一个名为$(document).ready
$(document).on("xsltready", function () {
...more code....
console.log("event alled here " + a variable);
问题是我从动态加载的javascript看到两个控制台的输出,当我检查web-inpector中的脚本文件夹下的资源文件夹(我正在使用移动safari和远程Web检查器)时,文件就在那里。问题是,有时当我刷新页面时,看起来文件没有被加载,因为脚本内部的console.log()
都没有被执行。但如果我再次刷新几次,它会回来。这是一个动态加载JavaScript的行为吗?
注意
我仍然可以在动态加载的JS文件中调用该方法,但是$(document).ready
末尾触发的自定义事件根本不会被执行。
答案 0 :(得分:0)
感谢@Levi,他的评论高于,他帮助我朝着正确的方向前进。他是正确的,因为$(docuemnt).ready
在脚本加载之前被触发了。 在准备好之前,DOM不会等待脚本加载。 ~Levi。所以我所做的不是在$(docuemnt).load
中触发我的自定义事件,而是在$(window).load
事件中触发,这解决了问题。但现在我遇到了性能问题。