js write()方法深入解析

发布时间:2020-08-22编辑:脚本学堂
深入解析下javascript中的write()方法,这个方法太常用了,write几乎会出现在任何的js脚本。本文详细介绍其用法。

一、使用write()方式给页面添加内容,必须要在页面加载完成之前输入,否则它将覆盖页面的内容,显示最后打印的内容。
1,原生js
 

复制代码 代码示例:
<html>  
<head>  
<TITLE>class_obj_js_class</TITLE>  
<script language=javascript>  
window.onload = function(){ 
    //document.write("我是添加内容"); 

document.write("我是添加内容"); 
</script>  
<body >  
dafdfad 
</body>  
</html>
 

显示内容:我是添加内容 dafdfad
 
2,jquery方式
 

复制代码 代码示例:
<html>  
<head>  
<TITLE>class_obj_js_class</TITLE> 
<script type="text/javascript" src="jquery-1.4.4.js"></script> 
<script language=javaScript>  
window.onload = function(){ 
    document.write("我是添加内容"); 

document.write("我是添加内容"); 
</script>  
<body onload="init()">  
dafdfad 
</body>  
</html> 
 

显示的内容是:我是添加内容
 
备注:如果需要在页面中打印控件就需要在页面加载完毕之前,否则就会出现页面的JS内容覆盖没有了。
 
二、document.write()会把输出写入到脚本文档所在的位置,浏览器解析完document.write()方法之后,会继续解析输出的内容。
 

复制代码 代码示例:
<html>  
<head>  
<TITLE>class_obj_js_class</TITLE>  
<script language=javaScript>  
    document.write("head"); 
</script>  
<body >  
<script language=javaScript>  
    document.write("body start"); 
</script>  
dafdfad 
<script language=javaScript>  
    document.write("body end"); 
</script>  
</body>  
</html> 
 

显示内容:head body start dafdfad body end
 
浏览器打印脚本功能<script>
每当浏览器遇到</script>,它都假定其中的代码块是完整的(即使它出现在javascript字符串当中)
 

复制代码 代码示例:
<script> 
document.write("<script>alert(1)</script>"); 
</script> 
浏览器解释为
<script> 
document.write("<script>alert(1)</script> 
 

 这样就导致浏览器解释异常了
 
解决办法:
 

复制代码 代码示例:
<script> 
document.write("<script>alert(1)</sc"+"ript>"); 
</script>