前言
好一陣子沒逛博客園了, 今天回自己博客搜點東西發現圖片放大功能不好使了(不是之前lightbox效果了),感覺很奇怪,難道博客園樣式升級連這個功能都給我屏蔽了?
當時記錄的博文:博客園文章圖片點擊放大功能升級 - 習慣沉淀 - 博客園 (cnblogs.com)
解決
第一感覺是博客園升級把引入的js屏蔽了,F12發現罪魁禍首是所有的a標簽都被強行加了屬性:

因為這段js是自己定義的, 被博客園加上rel屬性后, return的a標簽字符串拼接出現語法錯誤. 導致<img>未按預期加上<a>, 放大功能自然也失效了. 原代碼:

方案一: 在核心代碼給img包裹a標簽處手動加上rel
既然被強行加上rel屬性, 那我自己先加上還不行嗎?
"<a rel='nofollow' href='"+$(this).attr("src")+"' data-lightbox='example-set'></a>"
然並卵, 還是會被強制添加rel="nofollow"
方案二: 投機一下
發現個規律, rel屬性都是a標簽的第一個屬性, a標簽被強行加上rel屬性, 那如何識別a標簽的?能不能把<a拆開拼接?轉念一想即使拆開拼接后, 結果不一樣是<a么?
行不行試一下先:

結果竟然成功給img包裹a標簽了


表示迷門, 觸及到知識盲區了
加上的rel="nofollow"有啥用?
nofollow主要有三個作用:
1.防止不可信的內容,最常見的是博客上的垃圾留言與評論中為了獲取外鏈的垃圾鏈接,為了防止頁面指向一些拉圾頁面和站點。
2.付費鏈接:為了防止付費鏈接影響Google的搜索結果排名,Google建議使用nofollow屬性。
3.引導爬蟲抓取有效的頁面:避免爬蟲抓取一些無意義的頁面,影響爬蟲抓取的效率。
伸手黨福利
使用lightbox圖片放大功能, 在頁腳html處粘貼以下代碼即可:
<!-- lightbox的樣式 -->
<link href="https://blog-static.cnblogs.com/files/yadongliang/lightbox.css" rel="stylesheet">
<!-- lightbox.js核心代碼 -->
<script src="https://blog-static.cnblogs.com/files/yadongliang/lightbox-plus-jquery.js"></script>
<script type='text/javascript'>$('#cnblogs_post_body img').wrap(function(){return "<" + "a href='"+$(this).attr("src")+"' data-lightbox='example-set'></a>"});</script>
<script type='text/javascript'>$(".code_img_closed").unwrap();</script>
<script type='text/javascript'>$(".code_img_opened").unwrap();</script>
