欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

HTML中的base標(biāo)簽使用詳解

  發(fā)布時(shí)間:2013-04-24 09:50:40   作者:佚名   我要評(píng)論
在requireJS中,有一個(gè)屬性叫baseURL,通過(guò)設(shè)置baseURL,我們可以將需要加載的文件路徑寫成相對(duì)于項(xiàng)目的,而不是相對(duì)于當(dāng)前頁(yè)面的

在requireJS中,有一個(gè)屬性叫baseURL,通過(guò)設(shè)置baseURL,我們可以將需要加載的文件路徑寫成相對(duì)于項(xiàng)目的,而不是相對(duì)于當(dāng)前頁(yè)面的。

例如:假設(shè)我們的項(xiàng)目目錄是/myproject/,里面有兩個(gè)頁(yè)面,一個(gè)是/myproject/one.html,另一個(gè)是/myproject/html/other.html,他們都要加載/myproject/js/some.js。如果我們將baseURL設(shè)置成/myproject/,則我們?cè)诩虞d該js的時(shí)候,這兩個(gè)頁(yè)面都可以使用相對(duì)于項(xiàng)目的路徑./js/some,而不是因?yàn)轫?yè)面的路徑不同而使用不同的相對(duì)路徑。

但是如果不使用requireJS,我們能不能實(shí)現(xiàn)類似于baseURL的功能呢?

base標(biāo)簽
其實(shí),HTML中有一個(gè)base標(biāo)簽,可以產(chǎn)生類似的功能。舉個(gè)例子:

復(fù)制代碼
代碼如下:

<html>
<head>
<base />
</head>
<body>
<img src="./images/logo_gray.gif" />
</body>
</html>

我們會(huì)發(fā)現(xiàn),我們用相對(duì)路徑./images/logo_gray.gif加載的圖片,卻變成了http://static.cnblogs.com/images/logo_gray.gif的圖片。

base標(biāo)簽可以給頁(yè)面的鏈接加上默認(rèn)的路徑,或者默認(rèn)的打開方式。

下面是一個(gè)設(shè)置默認(rèn)打開方式的例子:

復(fù)制代碼
代碼如下:

<html>
<head>
<base target="_blank" />
</head></p> <p><body>
<a >這個(gè)頁(yè)面會(huì)在新窗口打開</a>
<a >這個(gè)頁(yè)面也會(huì)在新窗口打開</a>
</body>
</html>

一個(gè)BUG
base標(biāo)簽最好不要?jiǎng)討B(tài)寫入,否則在Firefox和IE中會(huì)有一個(gè)小bug,比如對(duì)于頁(yè)面http://localhost/static/test.html:

復(fù)制代碼
代碼如下:

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

Firefox和IE中會(huì)先加載http://localhost/static/static/1.jpg,然后再加載http://localhost/static/1.jpg。也就是說(shuō),他們都先嘗試用相對(duì)于當(dāng)前頁(yè)面的路徑進(jìn)行加載,然后再通過(guò)base標(biāo)簽設(shè)置的默認(rèn)路徑加載。

Chrome的加載正常。

Firefox的加載不正常。

 

Why?

這個(gè)我們并沒(méi)有找到很好的解釋,我們的分析是瀏覽器對(duì)資源加載進(jìn)行了優(yōu)化,導(dǎo)致動(dòng)態(tài)插入base標(biāo)簽并未生效時(shí),就預(yù)先去加載了,結(jié)果出錯(cuò),然后base標(biāo)簽生效于是又加載正確的資源。

 

如何避免呢?不動(dòng)態(tài)寫入base標(biāo)簽?zāi)敲淳蜎](méi)有任何問(wèn)題。如果需要?jiǎng)討B(tài)寫入base標(biāo)簽,那么頁(yè)面所有引用的外部資源都需要通過(guò)Javascript動(dòng)態(tài)加載。

相關(guān)文章

  • 我的css框架——base.css(重設(shè)瀏覽器默認(rèn)樣式)

    有自己css框架在網(wǎng)頁(yè)布局過(guò)程中會(huì)顯得相當(dāng)容易,本文提供的是本人的經(jīng)驗(yàn)之談主要功能在于重設(shè)瀏覽器默認(rèn)樣式,熱愛(ài)布局的你可千萬(wàn)不要錯(cuò)過(guò)了哈,希望可以幫助到你
    2013-03-19
  • HTML5本地存儲(chǔ)之Database Storage應(yīng)用介紹

    實(shí)際上,除了sessionStorage和localStorage外,HTML5還支持通過(guò)本地?cái)?shù)據(jù)庫(kù)進(jìn)行本地?cái)?shù)據(jù)存儲(chǔ),HTML5采用的是"SQLLite"這種文件型數(shù)據(jù)庫(kù),該數(shù)據(jù)庫(kù)多集中在嵌入式設(shè)備上,熟
    2013-01-06
  • HTML5 Web Database 數(shù)據(jù)庫(kù)的SQL語(yǔ)句的使用方法

    本文將詳細(xì)介紹HTML5 Web Database 數(shù)據(jù)庫(kù)的SQL語(yǔ)句的使用方法,需要了解的朋友可以參考下
    2012-12-09
  • HTML5教程之html 5 本地?cái)?shù)據(jù)庫(kù)(Web Sql Database)

    HTML5的Web SQL Databases(html5 本地?cái)?shù)據(jù)庫(kù))的確很唬人,當(dāng)你發(fā)現(xiàn)可以用與mysql查詢一樣的查詢語(yǔ)句來(lái)操作本地?cái)?shù)據(jù)庫(kù)時(shí),你會(huì)發(fā)現(xiàn)這東西挺有趣的,今天,我們一起來(lái)了解HT
    2014-04-03
  • Web數(shù)據(jù)存儲(chǔ)淺析 Cookie、UserData、SessionStorage、WebSqlDatabase

    淺析Web數(shù)據(jù)存儲(chǔ)-Cookie、UserData、SessionStorage、WebSqlDatabase 的使用方法。
    2010-08-06
  • ">html 基底網(wǎng)址標(biāo)記

    它的作用就是定一個(gè)全局的樣式。 那你后面的相對(duì)路徑會(huì)以這個(gè)為基準(zhǔn): <img src="logo.gif" /> 會(huì)變成 <img src="http://www.dbjr.com.cn/logo.gif
    2009-04-08
  • 基鏈接標(biāo)簽base的使用介紹

    當(dāng)點(diǎn)了鏈接后,跳出的網(wǎng)頁(yè)地址是http://www.webjx.com/web/或http://www.webjx.com/css/,它就是在這些相對(duì)路徑的文件前加上基鏈接指向的地址。如果目標(biāo)文件中的鏈接沒(méi)有指
    2008-10-17
  • CSS標(biāo)準(zhǔn):vertical-align屬性

    原文:http://www.mikkolee.com/13 最近幾天仔細(xì)研究了一下vertical-align這個(gè)屬性,結(jié)果讓我大吃一驚,這個(gè)很“資深”的CSS標(biāo)準(zhǔn)竟然在各個(gè)瀏覽器里面的表現(xiàn)
    2008-10-17

最新評(píng)論