我有下面的javascript函数,当传递一个单词如“Department”时,会在屏幕上找到“Department”的第一个实例。但是,我希望此代码突出显示给定单词的所有实例。
function findString (str) {
var TRange=null;
var strFound;
var TRange = self.document.body.createTextRange();
TRange.findText(str);
TRange.execCommand('foreColor', false, "#ff0000");
return;
}
答案 0 :(得分:1)
function findString (str) {
var TRange=null;
var strFound;
var TRange = self.document.body.createTextRange();
while(TRange.findText(str))
{
TRange.execCommand('foreColor', false, "#ff0000");
}
return;
}
答案 1 :(得分:1)
这段代码似乎已经完成了,但它很草率而且有点过分。我确信必须有一个更短的方法,而不是在同一个函数中两次重复我的execCommand行。
var TRange=null;
function findString (str) {
var strFound;
var counter = 0;
if (TRange==null || strFound==0) {
TRange=self.document.body.createTextRange()
strFound=TRange.findText(str)
if (strFound) {
TRange.execCommand('foreColor', false, "#ff0000");
}
}
TRange.collapse(false);
while (strFound=TRange.findText(str)) {
if (counter > 50){
alert("Search exceeded maximum limit of 50.");
return;
}
TRange.execCommand('foreColor', false, "#ff0000");
TRange.collapse(false);
counter += 1;
}
return;
}
答案 2 :(得分:1)
function findString (str) {
var TRange = document.body.createTextRange();
while (TRange.findText(str)){
TRange.execCommand("foreColor", false, "#ff0000");
TRange.collapse(false);
}
}
答案 3 :(得分:0)
请看一下这个链接:http://www.nsftools.com/misc/SearchAndHighlight.htm
该页面上使用的脚本与您所采用的方法不同,但最终结果正是您所寻找的。 p>