JavaScript不会在页面上打印任何内容

JavaScript不会在页面上打印任何内容,javascript,html,Javascript,Html,运行HTML文件后,页面显示为空白 var-person={ 名字:“约翰”, 姓:“Doe”, 年龄:50,, 眼睛颜色:“蓝色” }; 函数myFunction(){ document.getElementById(“demo”).innerHTML=person.firstName+“”+person.lastName; } 为了澄清@tkausl在评论中说的话,您已经定义了一个函数,但尚未执行(调用)它。尝试这样做: var-person={ 名字:“约翰”, 姓:“Doe”, 年龄

运行HTML文件后,页面显示为空白

var-person={
名字:“约翰”,
姓:“Doe”,
年龄:50,,
眼睛颜色:“蓝色”
};
函数myFunction(){
document.getElementById(“demo”).innerHTML=person.firstName+“”+person.lastName;
}

为了澄清@tkausl在评论中说的话,您已经定义了一个函数,但尚未执行(调用)它。尝试这样做:

var-person={
名字:“约翰”,
姓:“Doe”,
年龄:50,,
眼睛颜色:“蓝色”
};
函数myFunction(){
document.getElementById(“demo”).innerHTML=person.firstName+“”+person.lastName;
}
myFunction()

您需要在js代码中的某个地方调用函数。。比如:

window.onload="myFunction()";
或者,使其成为自动执行功能:

<script>
(function() {
    myFunction()
})();
</script>

(功能(){
myFunction()
})();
  • 更好的方法是使用事件
    DOMContentLoaded
    完全加载DOM
var-person={
名字:“约翰”,
姓:“Doe”,
年龄:50,,
眼睛颜色:“蓝色”
};
函数myFunction(){
document.getElementById(“demo”).innerHTML=person.firstName+“”+person.lastName;
}
document.addEventListener(“DOMContentLoaded”),函数(事件){
log(“DOM已完全加载并解析”);
myFunction();
});

您从未调用过该函数。是的,我添加了
myFunction()结束,现在正在打印!确保html部分在JavaScript之前出现在页面上,除非您正在等待文档加载事件。这不能保证工作正常,因为您在加载DOM之前对其进行操作。将事件处理程序注册到
DOMContentLoaded
window.onload
意味着
DOMContentLoaded
?我猜。。从未使用过它,因为在现代浏览器中,将字符串指定给
onload
将不再有效。要引导,正如@Bontano所说,这里的load是不正确的事件。第二个变体甚至更疯狂:即使调用函数是正确的(它不是,但可能经常工作,取决于时间),也绝对没有理由将它包装在一个自动执行函数中,而不是直接调用它。@phihag。。它们只是运行示例脚本的建议。。因此,在第一句话中出现“类似”的原因。没有理由下调评级。这些建议对提问的问题非常有效。我很想对这个答案投赞成票,但我不确定为什么你首先包含了错误的代码(在许多其他答案中重复)。@phihag好吧,我只是想展示OP的方法与更好的方法。你认为这不是一个好主意吗?根据我的经验,许多人倾向于在没有经过深思熟虑的情况下复制stackoverflow答案中的代码。所以,如果你有错误的代码,应该有明显的红字和评论,它不应该被使用。您的第二个示例已经显示了函数调用(与
document.addEventListener('DOMContentLoaded',myFunction);
,这是这里的真实答案)。@phihag是的,您是对的。许多人倾向于复制代码。答案更新!