事件处理程序不加载我的JavaScript函数
我正在尝试在id为的元素中插入文本。但是它不会出现。为什么不加载事件处理程序不加载我的JavaScript函数,javascript,jsfiddle,Javascript,Jsfiddle,我正在尝试在id为的元素中插入文本。但是它不会出现。为什么不加载 函数changeBio(){ 变量对象={ 姓名:“托拜厄斯”, 地址:{ 国家:'瑞典', 郡:“斯托克霍姆斯州”, 城市:“斯德哥尔摩”, }, 年龄:20,, 重量:80.0, }; var name=objects.name; var country=objects.address.country; document.getElementById('传记').innerHTML='我的名字是'+name+',我住在'+c
函数changeBio(){
变量对象={
姓名:“托拜厄斯”,
地址:{
国家:'瑞典',
郡:“斯托克霍姆斯州”,
城市:“斯德哥尔摩”,
},
年龄:20,,
重量:80.0,
};
var name=objects.name;
var country=objects.address.country;
document.getElementById('传记').innerHTML='我的名字是'+name+',我住在'+country;
}
window.onload=函数(){
changeBio();
};
在此处使用运行代码片段时,它可以正常工作。在JSFIDLE内部,它不起作用,因为JavaScript选项卡配置为运行onload,而HTML选项卡中的onload
处理程序在它之前运行,所以当时没有定义changeBio
。我建议您将onload
处理程序也放在JavaScript选项卡中,以将所有脚本放在一起,然后将其配置为包装在头部
或正文
中。在此处更改:只需更改即可
负载类型
到
JSFIDLE内无包裹体
并将下面的代码放入html中
<p id="biography">f</p>
然后运行它,您就可以开始了,它抛出的错误是“VM743:74未捕获引用错误:未定义changeBio”。首先调用bcoz“changeBio()”,然后加载该函数。
你不需要打明确的电话
<script>
window.onload = function() {
changeBio();
};
</script>
或者使用gear图标更改何时加载javascript函数,如“in body”或“in head”。
见示例:
但不在jsfiddle@AammadUllah当前位置我看到它现在在这里工作,但由于某种原因在JSFIDLE中不起作用。你能让它在JSFIDLE中工作吗?在JSFiddle中,你的JS配置为运行onload,因此当脚本标签中的脚本运行时,不会定义changeBio
。改为注射到身体或头部@你做了什么改变?这两个代码看起来完全一样,我是不是遗漏了什么?@aManHasNoName-如果你点击Javascript(带齿轮符号)并检查负载类型,你可以看到区别。是的,你是对的,更改了我的解释以更好地解释问题。如果你勇敢,请在否决投票前发表评论,我在这里发布之前已经执行了这段代码,所以请使用您的向下或向上投票特权。
<script>
window.onload = function() {
changeBio();
};
</script>
changeBio();
function changeBio() {
var objects = {
name: 'Tobias',
address: {
country: 'Sweden',
county: 'Stockholms Län',
city: 'Stockholm',
},
age: 20,
weight: 80.0,
};
var name = objects.name;
var country = objects.address.country;
document.getElementById('biography').innerHTML = 'My name is ' + name + ', I live in ' + country;
}