關於document的三個方法:open、write、close
阿新 • • 發佈:2019-01-10
document.open會開啟一個新文件,清除已載入的文件;document.write在HTML載入後呼叫會導致open方法呼叫一次;document.close會關閉開啟的文件。
直接看程式碼和效果圖:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>關於write</title>
</head>
<body>
<h1>HTML - 1</h1>
<script>
function doAsync(fun){
setTimeout(fun, 3000);
}
//呼叫document.open,清除當前文件,但是需要HTML載入完成後有效
document.open();
//文件載入未完成
//指令碼阻塞HTML解析,write會向文件流新增內容
document.write("<h1>這裡呼叫open、close無效 [文件未載入完成]</h1>");
document.open();
document.close();
document.open();
document.close();
doAsync(()=>{
//文件已載入
//呼叫document.write會導致document.open呼叫一次
//document.open會清除前文件並開始一個新的文件
document.write("<h1>文件載入結束。呼叫open,清除原文件</h1>");
document.write("<h1>這次沒呼叫open,保持追加</h1>");
//document.write方法不會導致document.close呼叫,需要手動呼叫
//document.close之後,如果再呼叫document.write,會導致document.open呼叫一次
document.close();
doAsync(()=>{
document.open();
document.write("<h1>這裡手動呼叫open,原文件被清除</h1>");
//呼叫document.open會清除頁面,即便沒有close
document.open();
document.write("<h1>這裡手動呼叫open,原文件被清除</h1>");
document.close();
});
});
</script>
<h1>HTML - 2</h1>
</body>
</html>