Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.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 addEventListener(“加载”)在Chrome中工作不正常? document.querySelector(“#jquery”).addEventListener(“加载”,onLoadJQuery); 函数onLoadJQuery(){ document.querySelector(“#js cookie”).setAttribute(“src”,“/js.cookie.js”); document.querySelector(“#js cookie”).addEventListener(“加载”,onLoadJSCookie); } 函数onLoadJSCookie(){ document.querySelector(“#vk info”).setAttribute(“src”,“/vk info.js”); }_Javascript_Addeventlistener - Fatal编程技术网

Javascript addEventListener(“加载”)在Chrome中工作不正常? document.querySelector(“#jquery”).addEventListener(“加载”,onLoadJQuery); 函数onLoadJQuery(){ document.querySelector(“#js cookie”).setAttribute(“src”,“/js.cookie.js”); document.querySelector(“#js cookie”).addEventListener(“加载”,onLoadJSCookie); } 函数onLoadJSCookie(){ document.querySelector(“#vk info”).setAttribute(“src”,“/vk info.js”); }

Javascript addEventListener(“加载”)在Chrome中工作不正常? document.querySelector(“#jquery”).addEventListener(“加载”,onLoadJQuery); 函数onLoadJQuery(){ document.querySelector(“#js cookie”).setAttribute(“src”,“/js.cookie.js”); document.querySelector(“#js cookie”).addEventListener(“加载”,onLoadJSCookie); } 函数onLoadJSCookie(){ document.querySelector(“#vk info”).setAttribute(“src”,“/vk info.js”); },javascript,addeventlistener,Javascript,Addeventlistener,我一直在使用这种检查,它在Firefox中也能正常工作 基本上jQuery加载到我的主模板中,然后在它的子模板中我也加载了一些脚本,但结果是。因此,首先应该检查jQuery是否已加载,然后加载JS Cookie,加载后再加载我的自定义脚本。但在Chrome上,由于某些原因,它不起作用 我可以看到jquery是在DOM中加载的,它的id是#jquery。但即使加载了,我的其他脚本也不会加载。它们不获取任何src属性并保持为空。我三次检查了他们的消息来源,一切都是正确的。特别是因为它们在没有Even

我一直在使用这种检查,它在Firefox中也能正常工作

基本上jQuery加载到我的主模板中,然后在它的子模板中我也加载了一些脚本,但结果是。因此,首先应该检查jQuery是否已加载,然后加载JS Cookie,加载后再加载我的自定义脚本。但在Chrome上,由于某些原因,它不起作用

我可以看到jquery是在DOM中加载的,它的id是
#jquery
。但即使加载了,我的其他脚本也不会加载。它们不获取任何src属性并保持为空。我三次检查了他们的消息来源,一切都是正确的。特别是因为它们在没有EventListener的情况下加载良好


谢谢你的帮助,也许我错过了什么。但是在Firefox中一切都正常。

因为我们看不到您是如何加载jQuery脚本标记的,所以很难确定,但问题可能是在注册处理程序之前,
load
事件已经触发了

不同的浏览器有不同的加载顺序,因此它们之间的加载顺序可能不同。如果将脚本标记的
src
设置在其
load
处理程序之前,则无法保证处理程序将运行,即使标记加载成功。它在某些浏览器中似乎工作可靠,但在新版本中,随着采用新的加载策略,这种情况很容易改变

如果无法确保在
src
之前设置脚本的
load
处理程序,则可以通过检查运行jQuery脚本的副作用来检测加载是否已经发生,例如:

<script id="js-cookie"></script>
<script id="vk-info"></script>
<script>
    document.querySelector("#jquery").addEventListener("load", onLoadJQuery);
    function onLoadJQuery() {
        document.querySelector("#js-cookie").setAttribute("src", "/js.cookie.js");
        document.querySelector("#js-cookie").addEventListener("load", onLoadJSCookie);
    }
    function onLoadJSCookie() {
        document.querySelector("#vk-info").setAttribute("src", "/vk-info.js");
    }

因为我们看不到您是如何加载jQuery脚本标记的,所以很难确定,但问题很可能是
load
事件在注册处理程序之前已经触发了

不同的浏览器有不同的加载顺序,因此它们之间的加载顺序可能不同。如果将脚本标记的
src
设置在其
load
处理程序之前,则无法保证处理程序将运行,即使标记加载成功。它在某些浏览器中似乎工作可靠,但在新版本中,随着采用新的加载策略,这种情况很容易改变

如果无法确保在
src
之前设置脚本的
load
处理程序,则可以通过检查运行jQuery脚本的副作用来检测加载是否已经发生,例如:

<script id="js-cookie"></script>
<script id="vk-info"></script>
<script>
    document.querySelector("#jquery").addEventListener("load", onLoadJQuery);
    function onLoadJQuery() {
        document.querySelector("#js-cookie").setAttribute("src", "/js.cookie.js");
        document.querySelector("#js-cookie").addEventListener("load", onLoadJSCookie);
    }
    function onLoadJSCookie() {
        document.querySelector("#vk-info").setAttribute("src", "/vk-info.js");
    }

您在何处使用jquery的
id
定义元素?@DerekPollard位于另一个模板中,该模板是我定义其他脚本的模板的父模板。我在问题中说明了这一点。id为
jquery
的元素在DOM中,我可以在那里看到它。这是同一页,只是两个不同的小树枝文件。完全没有区别。您在何处使用jquery的
id
定义元素?@DerekPollard位于另一个模板中,该模板是我定义其他脚本的模板的父模板。我在问题中说明了这一点。id为
jquery
的元素在DOM中,我可以在那里看到它。这是同一页,只是两个不同的小树枝文件。完全没有区别。我只是把那些脚本移到DOM的更高位置,它神奇地工作了,我不知道是什么原因。案件结案。不管怎样,谢谢你。事实上,它仍然在不同的情况下帮助了我。我只是把那些脚本移到了DOM的更高位置,它神奇地工作了,我不知道是什么原因。案件结案。不管怎样,谢谢你。事实上,它在不同的情况下仍然帮助了我。