W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
注意: 此部分應(yīng)用于開(kāi)發(fā)環(huán)境
你可以使用 yii\web\View 對(duì)象注冊(cè)腳本。這里有兩個(gè)專門的方法: (1)yii\web\View::registerJs() 用于內(nèi)聯(lián)腳本。 (2)yii\web\View::registerJsFile() 用于注冊(cè)引入外部腳本文件。 內(nèi)聯(lián)腳本通常用于配置和動(dòng)態(tài)生成代碼。 這個(gè)方法的使用可以像下面這樣:
$this->registerJs("var options = ".json_encode($options).";", View::POS_END, 'my-options');
第一個(gè)參數(shù)是我們想插入的實(shí)際JS代碼。 第二個(gè)參數(shù)確定了JS代碼插入頁(yè)面的位置。可用的值如下:
<body>
?標(biāo)簽的右邊。</body>
?標(biāo)簽的左邊。ready
?事件中執(zhí)行代碼,這里將自動(dòng)注冊(cè)yii\web\JqueryAsset。load
?事件中執(zhí)行代碼,這里將自動(dòng)注冊(cè)yii\web\JqueryAsset。最后一個(gè)參數(shù)是一個(gè)唯一的腳本ID,主要是用于標(biāo)識(shí)一段代碼塊,在添加一段新的代碼塊時(shí),如果當(dāng)前頁(yè)面已經(jīng)存在同樣ID代碼塊時(shí),那么將會(huì)被新的替換。 如果你不傳這個(gè)參數(shù),JS代碼本身將會(huì)作為ID來(lái)使用。
外部腳本的引入使用像下面這樣:
$this->registerJsFile('http://example.com/js/main.js', ['depends' => [\yii\web\JqueryAsset::className()]]);
yii\web\View::registerJsFile() 中參數(shù)的使用與 yii\web\View::registerCssFile() 中的參數(shù)使用類似。 在上面的例子中,我們注冊(cè)了main.js
?文件,并且依賴于?JqueryAsset
?類。這意味著?main.js
?文件將被添加在?jquery.js
?的后面。 如果沒(méi)有這個(gè)依賴規(guī)范的話,main.js
和?jquery.js
?兩者之間的順序?qū)⒉粫?huì)被定義。
和 yii\web\View::registerCssFile() 一樣,我們強(qiáng)烈建議您使用?asset bundles?來(lái)注冊(cè)外部JS文件,而非使用 yii\web\View::registerJsFile() 來(lái)注冊(cè)。
正如前面所提到的,我們推薦優(yōu)先使用資源包而非直接使用CSS和JavaScript。 你可以在資源管理器?asset manager?部分查看更多細(xì)節(jié)。 至于怎樣使用已經(jīng)定義的資源包,這很簡(jiǎn)單:
\frontend\assets\AppAsset::register($this);
你可以使用 yii\web\View::registerCss() 或者 yii\web\View::registerCssFile() 來(lái)注冊(cè)CSS。 前者是注冊(cè)一段CSS代碼塊,而后者則是注冊(cè)引入外部的CSS文件,例如:
$this->registerCss("body { background: #f00; }");
上面的代碼執(zhí)行結(jié)果相當(dāng)于在頁(yè)面頭部中添加了下面的代碼:
<style>
body { background: #f00; }
</style>
如果你想指定樣式標(biāo)記的附加屬性,通過(guò)一個(gè)名值對(duì)的數(shù)組添加到第三個(gè)參數(shù)。 如果你需要確保只有一個(gè)單樣式標(biāo)簽,則需要使用第四個(gè)參數(shù)作為meta標(biāo)簽的描述。
$this->registerCssFile("http://example.com/css/themes/black-and-white.css", [
'depends' => [BootstrapAsset::className()],
'media' => 'print',
], 'css-print-theme');
上面的代碼將在頁(yè)面的頭部添加一個(gè)link引入CSS文件。
<link>
?標(biāo)簽的HTML屬性,選項(xiàng)?depends
?是專門處理指明CSS文件依賴于哪個(gè)資源包。在這種情況下,依賴資源包就是 yii\bootstrap\BootstrapAsset。這意味著CSS文件將被添加在 yii\bootstrap\BootstrapAsset 之后。我們強(qiáng)烈建議使用?asset bundles?來(lái)注冊(cè)外部CSS文件, 而非使用 yii\web\View::registerCssFile() 來(lái)注冊(cè)。 使用資源包允許你合并并且壓縮多個(gè)CSS文件,對(duì)于高流量的網(wǎng)站來(lái)說(shuō),這是比較理想的方式。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: