婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > HTML中的base標簽使用詳解

HTML中的base標簽使用詳解

熱門標簽:最簡單的百度地圖標注店鋪 AI外呼系統 價格 梧州地圖標注app 錦州企業外呼系統 青海保險智能外呼系統商家 水經注萬能地圖標注 營口400電話申請 禹州電話外呼系統 新鄉機器人外呼系統

在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標簽生效于是又加載正確的資源。

 

如何避免呢?不動態寫入base標簽那么就沒有任何問題。如果需要動態寫入base標簽,那么頁面所有引用的外部資源都需要通過Javascript動態加載。

標簽:荊門 青島 哈密 昭通 山南 潮州 延邊 懷化

巨人網絡通訊聲明:本文標題《HTML中的base標簽使用詳解》,本文關鍵詞  HTML,中的,base,標簽,使用,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《HTML中的base標簽使用詳解》相關的同類信息!
  • 本頁收集關于HTML中的base標簽使用詳解的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 渑池县| 福建省| 天峻县| 南汇区| 措美县| 乌海市| 青川县| 禹城市| 长沙县| 浠水县| 白城市| 敦煌市| 宜丰县| 延庆县| 子长县| 徐水县| 安远县| 岳阳市| 乐业县| 瑞丽市| 雷州市| 怀柔区| 策勒县| 革吉县| 泗水县| 灌云县| 鹤峰县| 高邮市| 崇左市| 鄂尔多斯市| 岚皋县| 连云港市| 寻甸| 离岛区| 准格尔旗| 西林县| 天柱县| 蒙自县| 裕民县| 佛坪县| 报价|