html2Canvas 坑

庫地址

1. Html2Canvas 受限于瀏覽器的同源策略, 若是使用非同源的圖片會(huì)taint(污染)畫布剪决, 畫布污染后將不能讀取灵汪,默認(rèn)allowTaint 為false, 不允許污染畫布柑潦,同時(shí)圖片也不能畫在畫布上享言。
其屬性allowTaint: true , 可以設(shè)置成允許畫布被污染, 則可以直接繪制出跨域圖片渗鬼;

2. 使用 allowTait: true 雖然可以將跨域的圖片的html 轉(zhuǎn)為canvas 览露,但是當(dāng)想讀取此Canvas具體信息時(shí),如 getImageData譬胎, toDataUrl 方法卻會(huì)報(bào)錯(cuò)差牛,原因是被污染的畫布 因?yàn)橥床呗远嬖诎踩珕栴}。

解決辦法 :1) 使用 crossOrigin 屬性堰乔。
具體分析 :解決canvas圖片getImageData,toDataURL跨域問題
2)設(shè)置 useCORS: true 多糠, 原理相同,但使用以上跨域方法浩考, 若同時(shí)設(shè)置為 allowTaint: true 夹孔, 仍然會(huì)認(rèn)為畫布已被污染而不可用;

3. html2Canvas 雖然使用廣泛析孽,但是現(xiàn)在支持很少了搭伤。 實(shí)際在使用時(shí),要注意其實(shí)際對(duì)于css 屬性的支持袜瞬, 像是超過長度則顯示省略號(hào)這種效果怜俐,實(shí)際使用 text-overflow 等是不支持的,最好是一邊寫html邓尤,一邊生成Canvas 生成效果拍鲤。

但是這樣你以為就安全了么。汞扎。然并卵季稳。。澈魄。html2Canvas 實(shí)際在 PC 和Android 上都能完美呈現(xiàn)時(shí)景鼠, 在ios 上也會(huì)出幺蛾子。痹扇。铛漓。比如:

pc 效果 與 Android 效果
ios效果

星星不見了溯香。。 星星實(shí)際實(shí)現(xiàn)是使用 字體圖標(biāo)浓恶, 實(shí)際測試 發(fā)現(xiàn)ios 對(duì) :before, :after 不支持玫坛。。

解決辦法: 去掉:before偽類包晰,改為直接使用unicode 碼形式湿镀;

4. 關(guān)于字體圖標(biāo)
使用瀏覽器打開頁面時(shí),瀏覽器會(huì)讀取 HTML 文件進(jìn)行解析渲染杜窄,對(duì)于html中的文字會(huì)轉(zhuǎn)換成對(duì)應(yīng)的 unicode碼肠骆,再根據(jù)HTML 里設(shè)置的 font-family (如果沒設(shè)置則使用瀏覽器默認(rèn)設(shè)置)去查找電腦里(如果有自定義字體@font-face 算途,則加載對(duì)應(yīng)字體文件)對(duì)應(yīng)字體的字體文件塞耕,找到文件后根據(jù) unicode 碼去查找繪制外形,找到后繪制到頁面上嘴瓤。
字體圖標(biāo)實(shí)現(xiàn)原理就是這樣了扫外, 各種圖標(biāo)使用自己的字體庫來對(duì)unicode 碼進(jìn)行顯示設(shè)計(jì), 實(shí)際在實(shí)現(xiàn)時(shí)為了更好的可讀性使用了 classname + :before 廓脆。

作者:撿了幸福的豬
鏈接:http://www.reibang.com/p/b75cd3684828
來源:簡書
著作權(quán)歸作者所有筛谚。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處停忿。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末驾讲,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子席赂,更是在濱河造成了極大的恐慌吮铭,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,692評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件颅停,死亡現(xiàn)場離奇詭異谓晌,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)癞揉,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,482評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門纸肉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人喊熟,你說我怎么就攤上這事柏肪。” “怎么了芥牌?”我有些...
    開封第一講書人閱讀 162,995評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵预吆,是天一觀的道長。 經(jīng)常有香客問我胳泉,道長拐叉,這世上最難降的妖魔是什么岩遗? 我笑而不...
    開封第一講書人閱讀 58,223評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮凤瘦,結(jié)果婚禮上宿礁,老公的妹妹穿的比我還像新娘。我一直安慰自己蔬芥,他們只是感情好梆靖,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,245評(píng)論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著笔诵,像睡著了一般返吻。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上乎婿,一...
    開封第一講書人閱讀 51,208評(píng)論 1 299
  • 那天测僵,我揣著相機(jī)與錄音,去河邊找鬼谢翎。 笑死捍靠,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的森逮。 我是一名探鬼主播榨婆,決...
    沈念sama閱讀 40,091評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼褒侧!你這毒婦竟也來了良风?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,929評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤闷供,失蹤者是張志新(化名)和其女友劉穎烟央,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體这吻,經(jīng)...
    沈念sama閱讀 45,346評(píng)論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡吊档,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,570評(píng)論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了唾糯。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片怠硼。...
    茶點(diǎn)故事閱讀 39,739評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖移怯,靈堂內(nèi)的尸體忽然破棺而出香璃,到底是詐尸還是另有隱情,我是刑警寧澤舟误,帶...
    沈念sama閱讀 35,437評(píng)論 5 344
  • 正文 年R本政府宣布葡秒,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏眯牧。R本人自食惡果不足惜蹋岩,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,037評(píng)論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望学少。 院中可真熱鬧剪个,春花似錦、人聲如沸版确。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,677評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽绒疗。三九已至侵歇,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間吓蘑,已是汗流浹背惕虑。 一陣腳步聲響...
    開封第一講書人閱讀 32,833評(píng)論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留士修,地道東北人枷遂。 一個(gè)月前我還...
    沈念sama閱讀 47,760評(píng)論 2 369
  • 正文 我出身青樓樱衷,卻偏偏與公主長得像棋嘲,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子矩桂,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,647評(píng)論 2 354