一、發現問題
在valine評論list點擊評論者姓名跳轉鏈接出錯:
報錯位置:(F12我定位到vnick
這個鏈接標籤的herf
屬性出錯,外鏈跳轉需要網址頭的)
查看了Leancloud控制檯這位評論者的評論,只有域名,而不是網址:
valine評論者屬性有:【nick、email、link】 ,這裏herf
默認讀取的link屬性;
如果 link 沒有填寫網址頭,那麼href跳轉時是默認本頁面類跳轉;
導致出錯!
二、解決辦法
修改valine.min.js內核:
-
ctrl+F
快速定位到以下內容:var p = "", f = e.get("link") || ""; p = f ? '<a class="vnick" rel="nofollow" href="' + f + '" target="_blank" >'
這句話是一個空字段p,f爲 填寫的link鏈接地址;(評論者可以不填寫網址)
如果 f 鏈接 地址不爲空,就添加<a .. herf="f" >
鏈接標籤 -
添加以下內容:(
一個簡單的正則表達式判斷是否是url,不是則加上http://
)var the_link = e.get("link") //判斷是否添加http:// var pattern = /http(s)?:\/\/([\w-]+\.)+[\w-]+(\/[\w- .\/?%&=]*)?/; //正則表達式,url var result = e.get("link").match(pattern);//match 是匹配的意思 if (result == null) { the_link = "http://" + e.get("link"); } var p = "", f = the_link || ""; p = f ? '<a class="vnick" rel="nofollow" href="' + f + '" target="_blank" >'
如圖:(注意the_link位置修改)
不是很複雜,但很人性化!
後面打算把我修改後的valine系列整合,發在github或gitee上!
省去大家一點點修改的麻煩。wink~😜
我還打算加一個自定義表情包和隱私模塊!真是前端養成記~😊