最近在學習使用 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
第一個是w3school的介紹,第二個是w3schools的介紹。
仔細觀察,第一個圖特意有標明所有瀏覽器都支持
,請自行感受。
附上個人博客對應博文地址:
http://lancelot_lewis.coding.me/2016/05/17/html/ie9-base/