Greasemonkey

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 kedvelés

ez igazán gyors és tökéletes megoldás, köszönöm! :)

Végre egyszer én tudtam segíteni Neked :)

2 kedvelés

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!

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;
}