Autor Zpráva
Monroe
Profil *
Zdravím, chtěl bych vás požádat o pomoc. Přes grease monkey se snažím skrýt jeden span id element, ale je tu problém. Element mění svůj název takže není možné ho skrýt. Skryje se pouze při první návštěvě webu, ale jakmile kliknu na nějaký odkaz na té stránce, tak pokaždé změní svůj název. Při první návštěvě webu má span název <span id="d5e" potom když na něco kliknu třeba v navigačním menu tak se span změní na <span id="id5e7" [/pre] a tak dále. Po každém kliknutí je ten span jiný.

Existuje něco jak ten span skrýt když se takhle mění?

Span jsem se snažil skrýt touto funkcí.
(function() {

var div = document.getElementById("id5e");


if (div) {
   // div.style.display = "none"; // Pouze skryje
   
    div.parentNode.removeChild(div); // Úplně odstraní
}


} )();    
Str4wberry
Profil
Můžete si vybrat kolekci všech <span>ů v určité oblasti a skrýt ten s určitým pořadím. Za předpokladu, že se nepřidávají a neubírají <span>y jiné:
var div = document.getElementsByTagName("span")[10];
Nebo:
var div = document.getElementById("idOblasti").getElementsByTagName("span")[10];
Monroe
Profil *
Tak bohužel:-( Ani toto řešení nefunguje.

jedná se o stránku internetové bankovnictví Air Bank, kde se snažím skrýt položku v navigačním menu. Při prihlášení do internetového bankovnictví se span nezobraz, ale v té aplikaci na něco kliknu, zase tam je:-(

Celý script je

// ==UserScript==
// @name        Blokace polozky v menu
// @namespace   Monroe
// @include     https://*.airbank.cz/*
// @version     1
// ==/UserScript==

(function() {

var div = document.getElementsByTagName("span")[17];


if (div) {
   // div.style.display = "none"; // Pouze skryje
    // Or
    div.parentNode.removeChild(div); // Úplně odstraní
}


} )();  

Možná že zadávám špatně adresu
 https://*.airbank.cz/*

Už opravdu nevím jak to mají dělané :-(
Str4wberry
Profil
Jestli se na stránce mění něco až po kliknutí, tak to tímto skriptem, který se spouští při načtení stránky, nedocílíte.

Zkoušel jste to skrýt pomocí CSS?
Monroe
Profil *
Pomocí CSS? V grease monkey scriptech vsechno schovávám tímto způsobem. CSS jsem nezkoušel. Můžete prosím uvézt příklad jak by to mělo vypadat?
Str4wberry
Profil
Stačí si připojit uživatelské CSS a požadované elementy skrýt:
#d5e, #id5e7 {display: none}
Monroe
Profil *
Tak bohužel, ten element se stejně zase hned změní a pokaždé má jiný název. Nedokážu takhle vypsat všechny jeho názvy, ani nevím kolik jich vlastně je. Vždycky když kliknu na něco, tak si ten span vygeneruje nový název. Asi to nejde jen tak odstranit.

function addGlobalStyle(css) {
    var head, style;
    head = document.getElementsByTagName('head')[0];
    if (!head) { return; }
    style = document.createElement('style');
    style.type = 'text/css';
    style.innerHTML = css;
    head.appendChild(style);
}

addGlobalStyle("#id5e, #id5e7, #id697 { display: none; }");



* a nebo to grease monkey neumí
Str4wberry
Profil
Tak potom je potřeba najít nějaký společný znak těch různých variant jednoho elementu a vymyslet pro ně selektor. Z toho, co jste uvedl, nemohu poradit nic moc lepšího než skrýt <span> s id začínajícím na „id“:
span[id^="id"] { display: none; }

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: