我正在为学校练习对象做一个非常基本的javascript练习。我认为普通的document.write会起作用,但它没有,我看了很多地方,但很多只是为了控制台。 错误是
无法执行'写' on' Document':除非明确打开,否则无法从异步加载的外部脚本写入文档。
如果有人可以提供帮助那就太棒了,抱歉,如果真的很容易
这是我的代码
var oPerson = {
firstName: 'John',
lastName: 'Travis',
gender: 'Male',
age: 22,
district: 'Northshore',
hairColor: 'Brown',
hairLength: 'Short',
height: '6\'11"',
weight: '74kg',
martialStatus: 'Engaged'
}
document.write(oPerson);
document.write(oPerson.district);
oPerson.resident = "yes";
document.write(oPerson);

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Exercise - Personal Info</title>
<script src="practice9JS.js" type="text/javascript"></script>
</head>
<body>
</body>
</html>
&#13;
答案 0 :(得分:1)
您正在读取HTML时,您的document.write()调用正在执行。到DOM加载时,您的消息将不再可见。试试这个:
setTimeout(() => document.write(oPerson.lastName), 1000);
答案 1 :(得分:0)
建议不要使用document.write
,因为必须在加载页面之前执行它。它也在HTML地方执行,正好在添加的位置。因此,如果您的代码将被添加到页面的head
,而不是body.
If you wish to just add something to HTML, you can do it with
document.appendChild`。在创建新元素的地方,提供一些必要的信息并将其附加到正文中。
e.g。 https://codepen.io/msamsel/pen/zEMZXX?editors=1010
function printToBody( str ) {
var par = document.createElement( 'p' );
par.innerText = str;
document.getElementsByTagName( 'body' )[0].appendChild( par );
}
var oPerson = {
firstName: 'John',
lastName: 'Travis',
age: 22
}
printToBody( oPerson.firstName )
printToBody( oPerson.lastName )
printToBody( oPerson.age )
如果你真的想使用文档写入,那么将脚本从头到脚移动。然后document.write
应该在那里执行。
答案 2 :(得分:0)
我不确定您尝试做什么,但如果只是发布没有任何格式的对象内容,这可能适合您。
var oPerson = {
firstName: 'John',
lastName: 'Travis',
gender: 'Male',
age: 22,
district: 'Northshore',
hairColor: 'Brown',
hairLength: 'Short',
height: '6\'11"',
weight: '74kg',
martialStatus: 'Engaged'
}
var app = document.getElementById('app');
app.innerHTML = JSON.stringify(oPerson);
<div id="app">
</div>