【问题标题】:Function not loaded on EventListener "load" [duplicate]EventListener“load”上未加载函数[重复]
【发布时间】:2018-10-03 22:45:35
【问题描述】:

我有一个名为sample.txt.txt 文件,我想在其中加载一些文本并将其显示到我的HTML 文档中。

这是我的代码:

<div id="test"></div>
document.getElementById('test').addEventListener("load", getText);
console.log("script loaded succesfully")
function getText(){
  fetch('sample.txt').then(function(data){
    console.log("hello")
    console.log(data.text);
  });
}

我的问题是函数getText在加载时没有被调用,这是怎么回事,当它注销脚本加载成功时?

【问题讨论】:

  • load 事件不会针对常规元素触发。这是为window 对象。
  • imgiframe等很多元素上都有加载事件,即触发外部内容加载的元素。 div 不加载任何内容。

标签: javascript load


【解决方案1】:

通过将load 附加到window 来调用load 事件的正确方法如下:

window.addEventListener("load", getText);

我认为要确保 DOM 已加载,您可以改用 DOMContentLoaded 事件:

document.addEventListener("DOMContentLoaded", getText);

【讨论】:

  • 他需要在加载文件时进行监听,而不是在加载 DOM 时进行监听。
  • 我不这么认为@ConstantinChirila
  • @ConstantinChirila 你是不是假设了我的性别?
  • 我认为@ZakariaAcharki 是对的,因为“addEventListener”需要在第一次加载时添加侦听器事件,并且仅在第二次激活getText()函数
  • 嗨@mrdeadsven 如果将我的脚本放在我身体末尾的位置,DOMContentLoaded 是否也可以工作? 是的,它可以工作,但在这种情况下可能没有必要。 ..
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多