最近在学习使用 requirejs,config 的配置中有一个baseUrl
代表 requirejs 加载 js 时的基地址,所有的文件都是根据这个基地址去查找相对地址。
html 中有这么一个base
标签也是来完成这件事的,w3school里面是这么介绍的:
定义和用法
<base> 标签为页面上的所有链接规定默认地址或默认目标。
通常情况下,浏览器会从当前文档的 URL 中提取相应的元素来填写相对 URL 中的空白。
使用 <base> 标签可以改变这一点。浏览器随后将不再使用当前文档的 URL,而使用指定的基本 URL 来解析所有的相对 URL。这其中包括 <a>、<img>、<link>、<form> 标签中的 URL。
在使用中却发现,base
标签在 chrome 和 edge 浏览器下没有问题,可是切换到 ie9 模式的时候,base
标签失效了,就像是 ie9 不认识这个标签一样,完全无视了。在切换到 ie10 和 ie11 的时候,就没有问题。
最初还怀疑是 edge 浏览器模拟 ie9 的环境不是很完美,所以就索性装了一个 win7的虚拟机。win7 自带的浏览器是 ie8,正好 ie8 一起测试一样。
ie8 的确是不支持,再把浏览器升级到 ie9,果然也是不支持的,好吧,那只能选择放弃了。
贴两张图,大家感受一下:
第一个是w3school的介绍,第二个是w3schools的介绍。
仔细观察,第一个图特意有标明所有浏览器都支持
,请自行感受。
附上个人博客对应博文地址:
http://lancelot_lewis.coding.me/2016/05/17/html/ie9-base/