Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
文档准备就绪之前的Javascript onload事件和其他事件_Javascript_Jquery_Html - Fatal编程技术网

文档准备就绪之前的Javascript onload事件和其他事件

文档准备就绪之前的Javascript onload事件和其他事件,javascript,jquery,html,Javascript,Jquery,Html,我已经得到了上面的脚本,它添加了一个脚本标记,如果$未定义,它将指向jquery。我尝试在文档开始之前插入标记并执行startScript函数。但是我想发生的是body.onload没有足够快地触发startScript。。这阻止了它的执行。是否有一个事件会在jquery脚本标记/文档准备好后立即触发startScript 我认为答案在于每当jquery标记准备好并且文档一起准备好时就执行startscript。但是我不知道如何实现效果 请注意,将代码放在$(document).ready()中

我已经得到了上面的脚本,它添加了一个脚本标记,如果$未定义,它将指向jquery。我尝试在文档开始之前插入标记并执行startScript函数。但是我想发生的是body.onload没有足够快地触发startScript。。这阻止了它的执行。是否有一个事件会在jquery脚本标记/文档准备好后立即触发startScript

我认为答案在于每当jquery标记准备好并且文档一起准备好时就执行startscript。但是我不知道如何实现效果

请注意,将代码放在$(document).ready()中是一个不相关的解决方案,因为如果脚本中没有jquery文件,那么$将是未定义的


另外请注意,我不想在jquery标记onload事件上执行onload函数,因为这可能意味着该函数被触发了好几次。。我被困在这上面三个小时了。。最后solved@FrançoisWahl
typeof
始终返回字符串。强制字符串类型无效<无论您使用的是
=
还是
==
,code>typeof null都是
“对象”
。针对
未定义的
测试
$
的目的是查看
jQuery
是否已加载。您的最后一个注释是错误的,
null==undefined
为真,
null===undefined
为假。@RobW:+1您是对的。我的错误。我只是把它藏起来了,结果弄错了方向。我会回复我的评论:)我想你修正了……哈哈。。我被困在这上面三个小时了。。最后solved@FrançoisWahl
typeof
始终返回字符串。强制字符串类型无效<无论您使用的是
=
还是
==
,code>typeof null
都是
“对象”
。针对
未定义的
测试
$
的目的是查看
jQuery
是否已加载。您的最后一个注释是错误的,
null==undefined
为真,
null===undefined
为假。@RobW:+1您是对的。我的错误。我只是把它藏起来了,结果弄错了方向。我将重复我的评论:)
if (typeof $ == "undefined"){

console.log("$ is undefined. Adding javascript element to the document");
jQs = document.createElement("script");
jQs.type = 'text/javascript';
jQs.src = 'http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js';
var s = document.getElementsByTagName('script')[0]; 
s.parentNode.insertBefore(jQs, s);

// Run script once jQuery is loaded
    console.log(" startScript() Start");
    jQs.onload = startScript;

}
  function init() {
    if (typeof $ == "undefined"){

    console.log("$ is undefined. Adding javascript element to the document");
    jQs = document.createElement("script");
    jQs.type = 'text/javascript';
    jQs.src = 'http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js';
    var s = document.getElementsByTagName('script')[0]; 
    s.parentNode.insertBefore(jQs, s);

    // Run script once jQuery is loaded
        console.log(" startScript() Start");
        jQs.onload = startScript;

    }
}
window.onload = init;