新建body.shtml,其代码如下:
<!--#include file="head.html"-->
我组成身体
<!--#include file="foot.html"-->
然后建它引用的两个html页面,head.html的代码如下:
<!DOCTYPEhtml>
<html>
<head>
<metacharset="utf-8"/>
<title>我是标题</title>
</head>
<body>
我组成头部<br/>
foot.html和这个问题无关就不贴了,然后浏览器访问body.shtml,得到的页面如下图:
恩,没毛病!等等,怎么在“我组成头部”前面有个空格?查看响应正文我们
看到:
在最前面多了一串“”?而且浏览器解析后的DOM结构也不对,本应在<head>标签内的东西都跑<body>标签里去了:
经过各种查找,这是个比较冷门的问题,直接给出结论:“”代表十进制ascii码239,187,191,在BOM中用于表示“uft-8”,临时解决方法:head页最前面添加“-->”并在shtml页include前面多加一个“<!--#”:
<!--#<!--#include file="head.html"-->
我组成身体
<!--#include file="foot.html"-->
--><!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>我是标题</title>
</head>
<body>
我组成头部<br />
感觉不是很完美的解决方法,而且我只用了Edge和IE浏览器做测试,要是有懂这方面的大神请不吝赐教!