最近在做乙個**,遇到需要給**內所有的文章加關鍵字鏈結的問題,我們在瀏覽一些**的文章的時候,會發現文章裡面的某些關鍵字是加了鏈結的,並且高亮顯示。
開始技術部門打算在後台新增或者修改文章的時候,把文章裡面的關鍵字替換為標籤。但是這樣就出現一些問題
如果新新增乙個關鍵字,是不是所有的文章又要重新過濾一邊。把新關鍵字替換掉。
如果修改了關鍵字的名字或者是修改了關鍵字的鏈結位址,那麼又要重新過濾所有檔案。
綜合了一些情況後,感覺使用後台解決的方案行不通。於是我想到了前台指令碼解決
思路:關鍵字鏈結的資訊任然存放在資料庫中,在資料庫中有一些欄位來儲存關鍵字的資訊。
當使用者新增,刪除,更新關鍵字的時候,在後台生成乙個js檔案,格式如下:
**var
wordlinkdata='
[,]『
在前台頁面引用我們生成的js檔案,我工作中使用的是jquery庫。我們需要做工作是替換文章中所有的關鍵字 。這樣,我們就需要用wordlinkdata的資料不斷的迴圈判斷。
**$(document).ready(
function
() );
function
addwordlink()}}
}(function
($)
}).end();
} else
} else
})})
}return
$(this);}
})(jquery);
$.fn.highlight擴充套件是乙個高亮擴充套件,我修改了一下,用來滿足需求,如果你需要修改鏈結的樣式,或者想自己建立別的元素,你可以修改以下的**
**var
spannode
=document.createelement('a
');spannode.classname ='
divartcontentalink';
spannode.href
=url;
spannode.target ='
blank';
不過這個方法的缺陷是,當關鍵字過多的時候(超過150個),頁面的速度會下降
缺點是:一旦關鍵字太多,速度會下降。
大家如果遇到過這種情況,可以**下。期待更好的解決方案
給文章關鍵字加鏈結
給關鍵字加鏈結,同一關鍵字只加一次 源字串 關鍵字泛型 替換後結果 private string keyaddurl string src,list string keys if length temp.length length temp.length return temp 呼叫 string ...
MVC過濾整個專案輸入關鍵字
第1步驟.新建過濾關鍵字實現類 processrequest using system using system.collections.generic using system.linq using system.text using system.threading using system.w...
什麼是關鍵字鏈結?
什麼是關鍵字鏈結?什麼是關鍵字鏈結?部落格服務hatena diary 支援關鍵字鏈結,這是個很特別的功能。該功能在前面的圖5.3 p.112 的關鍵字鏈結截圖中已介紹過。如圖5.3所示,寫部落格時部分關鍵字會自動加上鏈結,鏈結目標就是該關鍵字的解釋頁面。wiki的實現也能給wiki關鍵字自動加鏈結...