麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > HTML > 正文

HTML中的base標簽使用詳解

2019-10-26 17:05:38
字體:
來源:轉載
供稿:網友

在requireJS中,有一個屬性叫baseURL,通過設置baseURL,我們可以將需要加載的文件路徑寫成相對于項目的,而不是相對于當前頁面的。

例如:假設我們的項目目錄是/myproject/,里面有兩個頁面,一個是/myproject/one.html,另一個是/myproject/html/other.html,他們都要加載/myproject/js/some.js。如果我們將baseURL設置成/myproject/,則我們在加載該js的時候,這兩個頁面都可以使用相對于項目的路徑./js/some,而不是因為頁面的路徑不同而使用不同的相對路徑。

但是如果不使用requireJS,我們能不能實現類似于baseURL的功能呢?

base標簽
其實,HTML中有一個base標簽,可以產生類似的功能。舉個例子:

復制代碼
代碼如下:
<html>
<head>
<base />
</head>
<body>
<img src="./images/logo_gray.gif" />
</body>
</html>

我們會發現,我們用相對路徑./images/logo_gray.gif加載的圖片,卻變成了http://static.cnblogs.com/images/logo_gray.gif的圖片。

base標簽可以給頁面的鏈接加上默認的路徑,或者默認的打開方式。

下面是一個設置默認打開方式的例子:

復制代碼
代碼如下:
<html>
<head>
<base target="_blank" />
</head></p><p><body>
<a >這個頁面會在新窗口打開</a>
<a >這個頁面也會在新窗口打開</a>
</body>
</html>

一個BUG
base標簽最好不要動態寫入,否則在Firefox和IE中會有一個小bug,比如對于頁面http://localhost/static/test.html:

復制代碼
代碼如下:
<html>
<head>
<script>
document.write('<base href="http://localhost/" />');
</script>
</head></p><p><body>
<img src="static/1.jpg" />
</body>
</html>

Firefox和IE中會先加載http://localhost/static/static/1.jpg,然后再加載http://localhost/static/1.jpg。也就是說,他們都先嘗試用相對于當前頁面的路徑進行加載,然后再通過base標簽設置的默認路徑加載。

Chrome的加載正常。

Firefox的加載不正常。

 

Why?

這個我們并沒有找到很好的解釋,我們的分析是瀏覽器對資源加載進行了優化,導致動態插入base標簽并未生效時,就預先去加載了,結果出錯,然后base標簽生效于是又加載正確的資源。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 全黄性性激高免费视频 | 免费啪啪 | 狠狠婷婷综合久久久久久妖精 | 久久精品一区二区三 | 娇妻被各种姿势c到高潮小说 | 久久精品无码一区二区三区 | 久久国产精品电影 | 欧美一级黄 | 九一传媒在线观看 | 欧美女同hd | 一区二区三区视频在线播放 | 黄色网址在线免费播放 | 久久久久久久久久美女 | 国产精品一 | 国产精品久久久乱弄 | 一级黄片毛片免费看 | 黄色7777 | 男女无遮挡羞羞视频 | 免费观看一级 | 中文字幕免费播放 | 国产亚洲精彩视频 | 久久精品视频国产 | 精品无吗乱吗av国产爱色 | 91短视频在线 | 国产精品久久久久久久午夜片 | 黄色淫片 | 国产精品区一区二区三区 | h色视频在线观看 | 国产精品免费久久久 | 成人男女激情免费视频 | 99精品视频免费 | 国产精品免费小视频 | 国产精品视频久久久 | 久久久久久久一区二区 | av成人一区二区 | 久草高清视频 | 天天看天天摸天天操 | 成人免费一区二区三区在线观看 | 日本娇小videos高潮 | 91精品国产免费久久 | 毛片网站网址 |