一、使用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>