JS模式
JS插件是針對普通內(nèi)容展示性網(wǎng)站設(shè)計(jì)的,適合企業(yè)網(wǎng)站、新聞網(wǎng)站等。
該插件應(yīng)用簡單:只需要把有字庫的JS庫引用至頁面,然后設(shè)置一下選擇器和字體,即可使頁面指字文字顯示出指定字體效果。So easy!!!
噢,對了,別忘了在有字庫后臺把您的域名添加到白名單里。
將下面JS引用到頁面的<head>標(biāo)簽里。
偽代碼:
//第三個(gè)參數(shù)"fontfamily"請?jiān)O(shè)置字體的英文名,該參數(shù)主要是為了標(biāo)記當(dāng)前所用字體,方便檢查、核對。
//第三個(gè)參數(shù)可支持英文內(nèi)容使用不同的英文字體(其實(shí)是字體優(yōu)先級);如:$webfont.load("seletor1", "xxx", "你自定義的英文字體fontfamily,有字庫fontfamily");
$webfont.draw();
</script>
JS插件是在頁面的onload事件中根據(jù)選擇器所指定的標(biāo)簽去獲取內(nèi)容的,如果某塊內(nèi)容,是異步加載的(在onload事件之后加載),JS將無法有效獲取到該部分內(nèi)容,為此,JS插件再次開掛,支持異步文字:
1.更新原script標(biāo)簽src為:
<script type="text/javascript" src="http://cdn.repository.webfont.com/wwwroot/js/wf/youziku.api.min.js#async"></script>
2.將原代碼中的 $webfont.draw(); 改為 $webfont.draw(0);
3.在異步方法的最后一行(在加載內(nèi)容的執(zhí)行語句的下一行)添加如下語句:
1)常規(guī)調(diào)用
2)異步分頁場景調(diào)用
$webfont.submit(partName,PageIndex);
參數(shù)partName是指當(dāng)前異步內(nèi)容塊的名字(整個(gè)頁面唯一即可,因?yàn)橐粋€(gè)頁面下可能會調(diào)用多個(gè)),由用戶自定義(不能有中文字符),用于標(biāo)記當(dāng)前異步內(nèi)容塊。如果一張頁面中,有多個(gè)異步內(nèi)容塊,則需要您添加多個(gè)$webfont.submit(),且同一頁面上不能有相同partName參數(shù)。
參數(shù)PageIndex是可選參數(shù),是指當(dāng)前異步內(nèi)容的分頁頁碼。如果當(dāng)前異步內(nèi)容塊是有分頁的,則需要在調(diào)用$webfont.submit()語句的時(shí)候傳進(jìn)來當(dāng)前頁碼。
注意:原代碼中的$webfont.load()語句也需要做相應(yīng)調(diào)整:如果$webfont.load()中的選擇器(第一個(gè)參數(shù))包含了異步標(biāo)簽(顯示異步內(nèi)容的標(biāo)簽),則需要將這個(gè)異步標(biāo)簽剔出來(將這個(gè)選擇器改成能將這個(gè)異步標(biāo)簽排除在外的選擇器寫法),然后將這個(gè)異步標(biāo)簽單獨(dú)寫成一行$webfont.load()語句。
如:原$webfont.load()語句中的選擇器是body,那么現(xiàn)在就需要將這個(gè)$webfont.load()語句拆分成兩行,一行是不包含異步標(biāo)簽的其他所有標(biāo)簽,一行就只是那個(gè)異步標(biāo)簽。
偽代碼:
//第三個(gè)參數(shù)"fontfamily"請?jiān)O(shè)置字體的英文名,該參數(shù)主要是為了標(biāo)記當(dāng)前所用字體,方便檢查、核對。
//第三個(gè)參數(shù)可支持英文內(nèi)容使用不同的英文字體(其實(shí)是字體優(yōu)先級);如:$webfont.load("seletor1", "xxx", "你自定義的英文字體fontfamily,有字庫fontfamily");
//調(diào)用mobile()函數(shù)即手機(jī)端應(yīng)用不同的字體,第一個(gè)參數(shù)"xxx"請您設(shè)置手機(jī)端要使用的字體的Accesskey,第二個(gè)參數(shù)"fontfamily"請?jiān)O(shè)置字體的英文名,該參數(shù)主要是為了標(biāo)記當(dāng)前所用字體,方便檢查、核對。手機(jī)端也支持英文內(nèi)容使用不同的英文字體。
JS插件是通過當(dāng)前頁面的URL為key來存放頁面相應(yīng)的字體的,所以新的頁面(新的URL)首次打開時(shí),會有閃爍的現(xiàn)象,那是服務(wù)器在生成字體并將字體注冊在當(dāng)前新的URL(新的key)下;
如果URL帶有參數(shù),且參數(shù)每次打開或刷新都會變動,那么頁面就會一直存在閃爍的現(xiàn)象,因?yàn)槊看未蜷_JS插件都認(rèn)為是新頁面;
如果參數(shù)的變動對于應(yīng)用了在線字體的那部分內(nèi)容沒有影響(如微信分享時(shí)自動加的后綴),那么可以通知JS插件,讓JS插件不去理會這些參數(shù)(也就是說,這些參數(shù)無論怎樣變動,都不會被JS插件識別為新的URL),具體操作方法如下:
1,在JS地址后面添加一個(gè)英文問號(?)即可讓JS插件不去理會當(dāng)前URL所有的參數(shù),也就是說,無論參數(shù)怎樣變動,頁面都不會再閃爍了。
2,在JS地址后面通過param參數(shù)來指示哪些參數(shù)需要保留,多個(gè)參數(shù)用“|”隔開(這些參數(shù)變動,會影響應(yīng)用了在線字體的那部分內(nèi)容),其他的參數(shù)忽略。
3,在JS地址后面通過noparam參數(shù)來指示哪些參數(shù)需要忽略,多個(gè)參數(shù)用“|”隔開(這些參數(shù)變動,不會影響應(yīng)用了在線字體的那部分內(nèi)容),其他的參數(shù)保留。