当我添加类型"加载"的Eventlistener时会发生什么? (我的意思是addEventListener("load", function(event){...})
)事件被触发后(例如我在我的文档开头加载一个谷歌地图api,而不是我要求一些php请求,之后我添加了监听器来决定是否google-api脚本已加载)。我希望EventListener在脚本已经加载的情况下调用回调。默认情况下会发生这种情况吗?
我的代码就是这个
HTML的文档:
<script src="https://maps.googleapis.com/maps/api/js?key=...&callback&signed_in=true&callback=RoadtripsTable.drawRoadtripsOnMap"async defer></script>
JS-DOC:
$.ajax({
type: "POST",
url: "../PHP/RoadtripsTable.php",
data: ({
fnChoice: "listRoadtrips"
}),
success: function(result){
head.addEventListener("load", function(event) {
if (event.target.nodeName === "SCRIPT")
{
/*now I would like to call the callback of the script tag in html*/ drawRoadtripsOnMap(); /* but what happens when the script was alread loaded?*/
}
}, true);
}
});
答案 0 :(得分:0)
如果我理解你的话,你只需要检查谷歌地图是否已加载
if (google && google.maps) {
// google maps is loaded
}
答案 1 :(得分:0)
在我看来,您需要切换到Promises
,因为一旦事件已经发生,传统的处理事件的方法就不会触发,但如果您在代码中使用promises,那么承诺使您可以灵活地执行代码(即使事件已经发生,您计划在事件触发之后/之后执行,例如回调)。