如何将Javascript对象写入文档。无法执行'写' on' Document'

时间:2017-10-16 21:26:38

标签: javascript html object document.write

我正在为学校练习对象做一个非常基本的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;
&#13;
&#13;

3 个答案:

答案 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>