Js - replaceAll - 關鍵字反白/頁面搜索關鍵字/網頁搜尋文字/網頁標記文字
Js - replaceAll - 關鍵字反白/頁面搜索關鍵字/網頁搜尋文字/網頁標記文字
var result= new Set();
result.add(1); // [1]
result.add(5); // [1, 5]
result是要尋找並劃線的關鍵字們 是一個Set
var x = document.getElementsByTagName("td");
先取得網頁中的內容給x
td是在網頁中哪個標籤的內容需要被搜尋 可以是<p>也可以是<td>等
第一種寫法
for (var y of result) {
for (var i = 0; i < x.length; i++) {
x[i].innerHTML =x[i].innerHTML.replaceAll(y, "<font style='background-color:#ffdfbf'>" + y + "</font>");
}
}
透過修改每一個x[i]的html,將有關鍵字的部分做replace加上背景顏色
這邊切記要用replaceAll 不然JS只會改到第一個出現的關鍵字
以上的方法經過實測IE部分版本不支援
IE根據版本不同對JS相容性差異極大
另如:不支援replaceAll 、遍歷Set的of、indexOf、Array.from()、trim()等等等...
把上面這段程式碼改到IE版本皆可用真是燒掉我的腦
因為沒有replaceAll 所以這一段要自己先加上去
<script language="javascript" type="text/javascript">
String.prototype.replaceAll = function (FindText,RepText) {
regExp = new RegExp(FindText, "g");
return this.replace(regExp,RepText);
}
</script>
然後才是剛才部分的功能,這一次result使用陣列
(因為當初在需求上有可能給到重覆的result 內容所以一開始用set
<script>
var result = [];
result.push(1);
result.push(5);
var x = document.getElementsByTagName("td");
for(var y =0; y<result.length;y++){
for (var i = 0; i < x.length;i++) {
x[i].innerHTML =x[i].innerHTML.replaceAll(result[y], "<font style='background-color:#ffdfbf'>" + result[y] + "</font>");
}
}
</script>
留言
張貼留言