मैं पृष्ठ पर टेक्स्ट को हाइलाइट करने का प्रयास कर रहा हूं यदि यह मेरी सरणी में टेक्स्ट से मेल खाता है। लक्ष्य पृष्ठ पर डुप्लिकेट को हाइलाइट करना है।
var iterator = document.evaluate('xpathgoeshere', document, null, XPathResult.UNORDERED_NODE_ITERATOR_TYPE, null);
try {
var thisNode = iterator.iterateNext();
var arrayList = [];
while (thisNode) {
arrayList.push(thisNode.textContent);
thisNode = iterator.iterateNext();
}
console.log(arrayList);
for (var i = 0; i < arrayList.length; i++) {
console.log(arrayList[i]);
}
} catch (e) {
dump('Error: Document tree modified during iteration ' + e);
}
var arrayListDupes = arrayList.slice().sort();
var results = [];
for (var i = 0; i < arrayListDupes.length - 1; i++) {
if (arrayListDupes[i + 1] == arrayListDupes[i]) {
//while (results) {
results.style.outline = "5px dashed red"; // I am probably doing
results = iterator.iterateNext(); // it completely incorrect
results.push(arrayListDupes[i]);
}
}
console.log(results);
0
Joe Berg
4 पद 2018, 10:34
1 उत्तर
सबसे बढ़िया उत्तर
नीचे दिए गए फ़ंक्शन के साथ आप मौजूदा कोड का उपयोग करें।
var TRange=null;
function findString (str) {
if (parseInt(navigator.appVersion)<4) return;
var strFound;
if (window.find) {
// CODE FOR BROWSERS THAT SUPPORT window.find
strFound=self.find(str);
if (!strFound) {
strFound=self.find(str,0,1);
while (self.find(str,0,1)) continue;
}
}
else if (navigator.appName.indexOf("Microsoft")!=-1) {
// EXPLORER-SPECIFIC CODE
if (TRange!=null) {
TRange.collapse(false);
strFound=TRange.findText(str);
if (strFound) TRange.select();
}
if (TRange==null || strFound==0) {
TRange=self.document.body.createTextRange();
strFound=TRange.findText(str);
if (strFound) TRange.select();
}
}
else if (navigator.appName=="Opera") {
alert ("Opera browsers not supported, sorry...")
return;
}
if (!strFound) alert ("String '"+str+"' not found!")
return;
}
findString (results[0])
जैसे कॉल करने का प्रयास करें, पाठ को पृष्ठ में हाइलाइट करना चाहिए।
findString()
स्रोत और डेमो यहां
1
kiranvj
4 पद 2018, 07:53