Ahoy!
Egy kis segítséget szeretnék kérni egy Greasemonkey script írásához. Célterület: https://www.hobbielektronika.hu/ webhely bal oldala. Ha valamelyik téma fölé viszem az egeret, help tag-ként (tulajdonképpen a link címe) megjelenik az utolsó hozzászóló neve és a hozzászólás ideje. Át lehet ezt valahogy vinni a link szövegébe?
Pl.:
link: LCD TV probléma
help tag: Utolsó hozzászólás: 20:16, írta: zole01
Ezt szeretném látni:
link: LCD TV probléma [zole01, 20:16]
Előre is!
var forumLists = document.getElementsByClassName('tema-list');
var links, currentLink, currentText, info, newInfo;
for(var i = 0; i < forumLists.length; i++){
links = forumLists[i].getElementsByTagName('a');
for(var l = 0; l < links.length; l++) {
currentLink = links[l];
currentText = currentLink.text;
info = currentLink.title.split(': ');
newInfo = ' [' + info[2] + ', ' + info[1].replace(', írta', '') + ']';
currentLink.text = currentText + newInfo;
}
}
2 Likes
ez igazán gyors és tökéletes megoldás, köszönöm! :)
Végre egyszer én tudtam segíteni Neked :)
2 Likes
Bachman
February 11, 2018, 10:47am
5
Szabad még kérdezni? Greasemonkey-ban használok pár cserélő sort, pl.:
document.body.innerHTML= document.body.innerHTML.replace(/Nincs\ olvasatlan\ t\éma\!/gi, "-");
Működik de van egy mellékhatása, deaktiválja azokat a funkciókat, amelyek a MouseOver alá tartoznak, már ha jól fejezem ki magam.
Van lehetőség szöveget kicserélni egy oldalon úgy, hogy a fenti probléma ne jöjjön elő?
Előre is!
Bachman
February 17, 2018, 3:55pm
6
Tárgytalan, megtaláltam a megoldást:
var replaceArry = [
[/View your user account/gi, 'Tu cuenta'],
[/Terms of service/gi, 'Términos y condiciones'],
[/Privacy policy/gi, 'Privacidad'],
// etc.
];
var numTerms = replaceArry.length;
var txtWalker = document.createTreeWalker (
document.body,
NodeFilter.SHOW_TEXT,
{ acceptNode: function (node) {
//-- Skip whitespace-only nodes
if (node.nodeValue.trim() )
return NodeFilter.FILTER_ACCEPT;
return NodeFilter.FILTER_SKIP;
}
},
false
);
var txtNode = null;
while (txtNode = txtWalker.nextNode () ) {
var oldTxt = txtNode.nodeValue;
for (var J = 0; J < numTerms; J++) {
oldTxt = oldTxt.replace (replaceArry[J][0], replaceArry[J][1]);
}
txtNode.nodeValue = oldTxt;
}