Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/380.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
为什么我的onload函数不能在JavaScript中工作?_Javascript - Fatal编程技术网

为什么我的onload函数不能在JavaScript中工作?

为什么我的onload函数不能在JavaScript中工作?,javascript,Javascript,我正在开发api以生成随机引用。它的工作很好,但我想生成一个随机报价尽快页面加载 document.getElementById('load').addEventListener('onload', loadData); document.getElementById('getQuote').addEventListener('click', loadData); function loadData() { const xhr = new XMLHttpRequest(

我正在开发api以生成随机引用。它的工作很好,但我想生成一个随机报价尽快页面加载

document.getElementById('load').addEventListener('onload', loadData);
document.getElementById('getQuote').addEventListener('click', loadData);

    function loadData() {
        const xhr = new XMLHttpRequest();
        xhr.open('GET', 'https://talaikis.com/api/quotes/', true);
        xhr.onload = function() {
            if (this.status === 200) {
                const data = JSON.parse(this.responseText);
                document.getElementById('quote-message').innerHTML = `<h1>${data[0].quote}</h1>`;
                document.getElementById('author').innerHTML = `<h3>${data[0].author}</h3>`;
            }
        }
        xhr.send();
    }
document.getElementById('load').addEventListener('onload',loadData);
document.getElementById('getQuote')。addEventListener('click',loadData);
函数loadData(){
const xhr=new XMLHttpRequest();
xhr.open('GET','https://talaikis.com/api/quotes/",对),;
xhr.onload=函数(){
如果(this.status==200){
const data=JSON.parse(this.responseText);
document.getElementById('quote-message')。innerHTML=`${data[0]。quote}`;
document.getElementById('author')。innerHTML=`${data[0]。author}`;
}
}
xhr.send();
}

我想您的问题是,为什么加载页面时函数不工作,请尝试将函数loadData封装在
$(document.ready()
中。加载完页面后,将执行
$(document).ready()
中包含的函数

编辑:更正未加载,
准备就绪
谢谢。

根据

使用
window.onload
在文档加载时启动脚本:

window.onload = loadData;
您的完整代码将如下所示

window.onload = loadData;
document.getElementById('getQuote').addEventListener('click', loadData);

function loadData() {
 // [...]
}

addEventListener('load'
…not onload-另外,您是否有ID=
load
的元素?将
loadData
函数定义放在&
文档上方。addEventListener('onload',loadData)
将执行以下操作:trick@VeteranLK
函数
JS中的声明被提升(移动到范围顶部),因此在定义函数名之前使用函数名是完全有效的。是的,我的html代码中有ID=load。@Jaromandax它是什么类型的元素?什么元素有一个
load
事件?也就是说,你希望什么时候触发这个
load
事件?文档没有一个load属性,你可以像那样使用它进行更正,这需要
jquery
-问题中没有要求它。谢谢。它起作用了。但是我有一些疑问。为什么我的addeventlistener不起作用?因为
onload
事件不会发生在
id=load
元素上,而是发生在
window
元素上。因此,您必须使用
window.addeventlistener('load',Data);
(注意语法是
load
,而不是
onload