Hirdetés

Keresés

Új hozzászólás Aktív témák

  • martonx
    veterán

    browser.js

    Azt hiszem elegendő lenne useragent is, csak rá kell jönnöm hova mit írjak, hogy az jó legyen, mert az alap beállítások amiket progi használ az nem jó.

    Egyrészt úgy rémlik anno volt IE Tab nevű bővítmény FF alá, régebben pont ugyanilyen cipőben jártam, mint te.
    Viszont ha nem Windows XP-n vagy, akkor hidd el, az IE11 használatával sem fogsz semmit veszíteni az FF-hez képest.

  • Sk8erPeter
    nagyúr

    browser.js

    Azt hiszem elegendő lenne useragent is, csak rá kell jönnöm hova mit írjak, hogy az jó legyen, mert az alap beállítások amiket progi használ az nem jó.

    Pl. ezzel próbálkoztál?

  • Sk8erPeter
    nagyúr

    User-agent-et kipróbáltam már régebben, az nem segített, hiába állítottam IE8-9-10-11-re.
    Régi szutyok, ezt aláírom, de nekem kb az 5%-a kell amit tud, és az működne rendesen FF-ben is (régen ment, mielőtt letiltották volna).

    És mi van abban a browser.js-ben?

  • Sk8erPeter
    nagyúr

    Vállalati program csak IEn keresztül megy, ami engem bosszant, mert miért használjak 2 böngészőt, ha nem muszáj.
    Lehetséges, hogy én átverjem az oldalt, hogy valójában nem FF-ot használok, hanem IE-t?
    Van egy browser.js ami ezért felel, és abban van ez a rész ami felel érte (gondolom):

    var oBrowser=_browser;

    MenuBar.prototype.change_state=function(obj,b_display)
    {
    var new_display_state;
    if(b_display)
    if(oBrowser.isIE)
    new_display_state="block";
    else
    new_display_state="";
    else
    new_display_state="none";
    obj.style.display=new_display_state;
    }
    function toolbar_action(t_id)
    {

    Tudna esetleg valaki erre egy userscriptet írni FF-hez, ami elősegíti, hogy a new_display_state mindig "block" legyen?

    Vagy nekem az is jó, ha esetleg megmondja valaki hogy tudom kinyerni, hogy milyen divet alakít át, mert akkor elég lenne egy display:block!important is. Viszont ez egy iframe, és FFben nem jelenik meg, IE-hez meg nem értek annyira, hogy hogy nyerjem ki melyik div-et érinti.

    szerk.:
    <body onunload="remove_menubar()" leftmargin="5" onload="isLoaded = true;">
    Vagy ha ezt ki lehetne ütni valahogy, az is megfelelne. :)

    Amennyiben User-Agent alapján dönti el, milyen böngészőt használsz, akkor arra vannak User-Agent Switcher bővítmények más böngészőkhöz is.
    Viszont elképzelhető, hogy annál a vállalati weboldalnál azért van ilyen megkötés, mert egy régi szutyok, és TÉNYLEG csak IE-ben működik megfelelően (pl. ActiveX controls, ilyesmik).

  • Sk8erPeter
    nagyúr

    Persze hogy olvastam, ki is próbáltam, de nem azt csinálta amit én szeretnék az a kód. Kijelöli ugyan a 720p torrenteket, de párat pirossal, párat zölddel, és semmi összefüggés nincs köztük, vagyis én nem vettem észre, hisz amit sokan letöltöttek azt ki se jelöli, meg ilyenek.

    És a kódot amit használok értek, és átlátom, a tiédet meg nem, ezért használtam azt inkább.

    Az a Cati meg testvér elem, szóval nem egymás alatti dolog, hisz a 2 TD teljesen egyenrangú, abból ki lehet indulni?
    Így néz ki a szülőkönyvtár:
    Table(torrentable) > Tbody > TR > TD > A

    Most a kód btw így néz ki:

    http://pastebin.com/UJEmEkkn

    Nem tudom, nálad miért nem működik a korábbi kód, pedig pontosan megfelelt annak a specifikációnak, amiről írtál, ki is próbáltam a gyakorlatban, nálam azt csinálta, amit szerettél volna.
    Egyébként nem tudom, mi a nehezen átlátható benne, szerintem a kód magáért beszél, beszédes változóneveket is használtam direkt.

    "Kijelöli ugyan a 720p torrenteket, de párat pirossal, párat zölddel, és semmi összefüggés nincs köztük, vagyis én nem vettem észre"
    Most direkt rákerestem a "Family Guy" szavakra a megfelelő helyen, és pontosan azt csinálja, amit leírtál, hogy szerettél volna... :U A táblázatban páratlannak megfelelő sorokat pirosas színnel jelöli ki, a párosakat zölddel. De most lehet, hogy te azt akartad volna, hogy a találatok közül válassza szét a páros-páratlanokat, és annak megfelelően színezzen? Mert rohadtul nem azt mondtad....

    "hisz amit sokan letöltöttek azt ki se jelöli, meg ilyenek."
    Itt miről beszélsz, beszélj már világosan, mert én nem értem. Mikor volt szó arról, hogy a sokat letöltött torrenteket jelölje már ki? Ugyan milyen szűrőt akarnál erre tenni? Ezt korábban még csak nem is említetted, hogy erre rá lehessen keresni.

    Elmondom, mit kértél zanzásítva: a táblázatban lévő páratlan sorokat jelölje ki az egyik színnel, a párosakat másikkal, de ezeken belül csak azokat színezze be, amely találatok nevében benne van a "family guy" és a "720p".
    Pont ezt csinálja, attól még, mert nem tudtad normálisan megfogalmazni, mit szeretnél, nem az én kódom a hibás.

    A második kérdésre:
    "Az a Cati meg testvér elem, szóval nem egymás alatti dolog, hisz a 2 TD teljesen egyenrangú, abból ki lehet indulni?"
    Igen, épp ezt magyaráztam, hogy a cati osztályú td elem testvéreleme az, amin belüli <a> taggel rendelkező elemet keresed, és mint a kódból látható, ki lehet belőle indulni. :U Ezt is kipróbáltam, létrehoztam egy ilyennek megfelelő táblázatot, ha nálad nem működik, akkor annak már tényleg nem tudom, mi az oka...

  • Sk8erPeter
    nagyúr

    Mivel az előző script jól működik, veszem a bátorságot, és megpróbálok egy más szerkezetű oldalhoz is csinálni hasonlót. Viszont mivel azóta se tudok programozni, lenne 1-2 kérdésem, mert itt próbálgatással nem megyek semmire, mert 1 apró hiba, és nem működik, és google-be hiába kerestem számomra fogyasztható írást erről, nem igazán találtam (nem is igazán tudom mire keressek).

    Szóval, az oldal első eleme amit vizsgálni szeretnék, teljes fával:

    És ha jól sejtem, nekem elég innentől dolgozni:

    Azaz ennek a vizsgálata, és hosszának megállapítása így fog kinézni?

    for (
    i=1 ;
    i < document.getElementsById("torrenttable").getElementsByTag("TBODY").length ;
    i++
    )

    I azért 1, mert az első TR a fejléc, ami nekem nem kell, így kapásból a 2. elemmel kell kezdenie.

    Valamint a szöveg vizsgálata:

    document.getElementsById("torrenttable")[0].getElementsByTagName("TBODY")[i].getElementsByTagName("TR")[1].getElementsByTagName("a")[0].title.match(/720p|Dimension|Immerse/i)

    itt a [1] az első vagy a második elemet jelenti, itt is a 2.at ugye?

    Láttad a korábbi hsz.-t, amit még szintén neked címeztem?

    Újabb kérdésre:

    ott van a "cati" classname-mel rendelkező <td> elem még azelőtt. Ezért én abból indulnék ki, hogy ennek a <td> testvérelemén belül keresed az <a> taget.

    Innen szedtem egy next() függvényt.

    Ezek alapján a kód:

    function next(elem) {
    do {
    elem = elem.nextSibling;
    } while (elem && elem.nodeType != 1);
    return elem;
    }

    var elementsWithCatiClass = document.getElementsByClassName('cati'),
    nextElement = null,
    elementsNeeded = [];

    for( var i = 0; i < elementsWithCatiClass.length; i++ ){
    nextElement = next( elementsWithCatiClass[i] );
    elementsNeeded[i] = nextElement.getElementsByTagName('a');
    }

    Itt az elementsNeeded tömbbe gyűjtjük az említett elemeket.
    A for cikluson belül persze csináld ezekkel az elemekkel azt, amit szeretnél.
    Kipróbáltam, működik.

  • Sk8erPeter
    nagyúr

    Ááá, ha csak ennyi kellene, akkor CSS-t hasznék rá, nem Javascriptet!

    Az a lényeg, hogy az oldalon végig nézi a megjelölt diveket, és ha benne van egy szöveg, és az 720p, akkor kijelöli színesen. De már rájöttem a hiba kiküszöbölésére, szóval lassan kész is.

    Azért problémák még akadnak sajnos, pl hogy egyszerre nézzen 2 divet, és ha egyik is true, akkor jó legyen, de majd kitalálom egyszer. :)

    Jah, jogos, igazából most nézem csak, hogy benne van a reguláris kifejezéssel való ellenőrzés is.

    De akkor is nehezen átlátható így. :P

    Én valahogy így oldanám meg, kipróbáltam, működik (direkt két jól eltérő háttérszínt választottam):

    var
    torrentElements = document.getElementsByClassName("box_torrent"),
    oddRowClassName = "box_nagy",
    evenRowClassName = "box_nagy2",
    oddRowBackgroundColor = "#3AA03A",
    evenRowBackgroundColor = "#FF1111";

    for(var i=0; i<torrentElements.length; i++){
    var torrentLink = torrentElements[i].getElementsByTagName("a")[1],
    isTorrentFamilyGuy = torrentLink.title.match(/family.guy/i),
    isTorrent720p = torrentLink.title.match(/720p/i),
    isOddRow = (torrentElements[i].getElementsByClassName(oddRowClassName).length > 0);
    isEvenRow = (torrentElements[i].getElementsByClassName(evenRowClassName).length > 0);

    if(isTorrentFamilyGuy && isTorrent720p){
    if(isOddRow){
    torrentElements[i].getElementsByClassName(oddRowClassName)[0].style.backgroundColor = oddRowBackgroundColor;
    }
    else{
    torrentElements[i].getElementsByClassName(evenRowClassName)[0].style.backgroundColor = evenRowBackgroundColor;
    }
    }
    }

    Szerk.: a működését úgy is le tudod ellenőrizni, hogy pl. Chrome-ban nyomsz egy F12-t, a Console fület kiválasztod, és oda egy az egyben bemásolod a kódot, majd nyomsz egy Entert (persze úgy, hogy a megfelelő ncore-oldal meg van nyitva, és rákerestél a Family Guy-találatokra).

  • Sk8erPeter
    nagyúr

    Sziasztok

    Találtam egy elég hasznos scriptet Scriptish-hez, amit szerettem volna picit átalakítani, már félig össze is jött ami kell, viszont egy ponton megakadtam.

    Ncore jellemzője, hogy minden sor más színű, ezért ugyanaz a háttérszín minden sornál hülyén néz ki, úgyhogy jött az ötlet, hogy 2 színű legyen, viszont várakozásokkal ellentétben csak a páratlan sorok színeződnek be (azaz pont az első része a scriptnek, és nem a második)

    Sose javascripteltem, úgyhogy előfordulhat, hogy valami orbitális hülyeséget követtem el, és ott van a hiba. Script itt található:

    http://pastebin.com/UJEmEkkn

    //box_nagy2 - páratlan sorok
    ez a rész lefut, színez

    //box_nagy - páros sorok
    ezt a részt viszont ignorálja teljesen, de hibát nem ír ki, csak nem színez

    //Sok letöltés
    ez ismét tökéletesen lefut hiba nélkül

    Most próbáltam elérni, hogy kapásból vizsgálat után mindkét sort színezze, és ne kelljen a title.matchnek 2x jelentkeznie.

    document.getElementsByClassName("box_torrent")[i].getElementsByTagName("a")[1].title.match
    (/family.guy/i)
    &&
    document.getElementsByClassName("box_torrent")[i].getElementsByTagName("a")[1].title.match
    (/720p/i)
    ?
    document.getElementsByClassName("box_nagy2")[parseInt(i/2)].style.backgroundColor = "#329832";
    document.getElementsByClassName("box_nagy")[parseInt(i/2)].style.backgroundColor = "#3aa03a":

    De mondanom sem kell, hogy ez nem működik. Mit rontottam el, illetve mivel tudom működésre bírni ezt a részt?

    Uhh, ezt elég brutálisan túlbonyolítod.
    Ha jól értem, az a célod, hogy a páratlan, illetve páros soroknak különböző háttérszíneket adj.

    Ebben az esetben ennyivel megoldható:

    var
    // páratlan táblázatsorok
    oddElements = document.getElementsByClassName("box_nagy"),
    // páros táblázatsorok
    evenElements = document.getElementsByClassName("box_nagy2"),
    // páratlan táblázatsorok háttérszíne
    oddBackgroundColor = "#3AA03A",
    // páros táblázatsorok háttérszíne
    evenBackgroundColor = "#A31E39"
    ;

    // végigmegyünk a páratlan táblázatsorokon
    for(var i = 0; i<oddElements.length; i++){
    oddElements[i].style.backgroundColor = oddBackgroundColor;
    }

    // végigmegyünk a páros táblázatsorokon
    for(var i = 0; i<evenElements.length; i++){
    evenElements[i].style.backgroundColor = evenBackgroundColor;
    }

    =================

    (#2376) wolandino : a puding próbája az evés. :P

  • BullZeye
    veterán

    Sziasztok

    Találtam egy elég hasznos scriptet Scriptish-hez, amit szerettem volna picit átalakítani, már félig össze is jött ami kell, viszont egy ponton megakadtam.

    Ncore jellemzője, hogy minden sor más színű, ezért ugyanaz a háttérszín minden sornál hülyén néz ki, úgyhogy jött az ötlet, hogy 2 színű legyen, viszont várakozásokkal ellentétben csak a páratlan sorok színeződnek be (azaz pont az első része a scriptnek, és nem a második)

    Sose javascripteltem, úgyhogy előfordulhat, hogy valami orbitális hülyeséget követtem el, és ott van a hiba. Script itt található:

    http://pastebin.com/UJEmEkkn

    //box_nagy2 - páratlan sorok
    ez a rész lefut, színez

    //box_nagy - páros sorok
    ezt a részt viszont ignorálja teljesen, de hibát nem ír ki, csak nem színez

    //Sok letöltés
    ez ismét tökéletesen lefut hiba nélkül

    Most próbáltam elérni, hogy kapásból vizsgálat után mindkét sort színezze, és ne kelljen a title.matchnek 2x jelentkeznie.

    document.getElementsByClassName("box_torrent")[i].getElementsByTagName("a")[1].title.match
    (/family.guy/i)
    &&
    document.getElementsByClassName("box_torrent")[i].getElementsByTagName("a")[1].title.match
    (/720p/i)
    ?
    document.getElementsByClassName("box_nagy2")[parseInt(i/2)].style.backgroundColor = "#329832";
    document.getElementsByClassName("box_nagy")[parseInt(i/2)].style.backgroundColor = "#3aa03a":

    De mondanom sem kell, hogy ez nem működik. Mit rontottam el, illetve mivel tudom működésre bírni ezt a részt?

    Áh, túl egyszerű volt a megoldás, hogy lássam:

    document.getElementsByClassName("box_nagy" + (i%2?"":"2"))[parseInt(i/2)].style.backgroundColor = (i%2?"#3aa03a":"#329832"):

  • Sk8erPeter
    nagyúr

    Kicsit olyan már mint a bürökrácia :D küldözgetnek ide-oda :D szóval akkor hova menjek ezzel a kérdéssel akkor? :)

    1 felhasználó lenne, 1 PHP oldal, kb 8 sor szöveg, és mellette 1-24ig számok, ha rákattolok az 5sre akkor szürkéből zöld lesz, és úgy marad, és ha holnap egy másik gépen, másik böngészőben nyitom meg a lapot, akkor ott lássam miket láttam, azaz mi zöld? :D

    Azért macerás, mert én csak "használom" az oldal egy aldomainjét, és nem tudok kérni adatbázis-t :) nem probléma, ha erőforrásigényes, mert hetente 3x ha megnyitná valaki ezt az oldalt, akkor sokat mondok, szóval felőlem akár egy gány TXT-s megoldás is tökéletes, mert több mint a semmi. Csak a lényeg, hogy böngészőből 1 kattintással lehessen elvégezni mindezt.

    Folytassuk tovább a PHP-topicban: [link].

    (#2213) Speeedfire :
    Nem muszáj adatbázis, gondolom az a lényeg, hogy most emiatt nem akar külön fizetni, csak sokkal szebb lenne.

  • Speeedfire
    félisten

    Kicsit olyan már mint a bürökrácia :D küldözgetnek ide-oda :D szóval akkor hova menjek ezzel a kérdéssel akkor? :)

    1 felhasználó lenne, 1 PHP oldal, kb 8 sor szöveg, és mellette 1-24ig számok, ha rákattolok az 5sre akkor szürkéből zöld lesz, és úgy marad, és ha holnap egy másik gépen, másik böngészőben nyitom meg a lapot, akkor ott lássam miket láttam, azaz mi zöld? :D

    Azért macerás, mert én csak "használom" az oldal egy aldomainjét, és nem tudok kérni adatbázis-t :) nem probléma, ha erőforrásigényes, mert hetente 3x ha megnyitná valaki ezt az oldalt, akkor sokat mondok, szóval felőlem akár egy gány TXT-s megoldás is tökéletes, mert több mint a semmi. Csak a lényeg, hogy böngészőből 1 kattintással lehessen elvégezni mindezt.

    Ide valóban el kellene egy adatbázis, félre értettem a php-s topicban írtakat. Ingyenes tárhely + domain évente ~2800huf.
    De akár lehet bármelyik ingyenes tárhely is, de ott akkor nincs saját egyedi domain. pl 000webhost
    Aztán az aldomaint meg átirányítod erre ha kell.

  • Sk8erPeter
    nagyúr

    Szerver oldali fájllal nincs baj, csak nagyon macerás egy adatbázist létrehozatni velük. Amit linkeltél meg jó, csak ennél egyszerűbb dolgot szeretnék, saját oldalra. (ahol 1 képernyőn kifér az a 10 sorozat amit nézünk)

    Jeges
    Rákattintok a linkre, és úgy marad = úgy marad, nem csak átmenetileg lesz színezett.
    Szeretném követni, hogy melyik sorozatból melyik részt láttam, és ez a legegyszerűbb módja, ezért szeretném ezt elérni. Azt hittem erre van már valami egyszerű javascript.

    "Szerver oldali fájllal nincs baj, csak nagyon macerás egy adatbázist létrehozatni velük."
    Kikkel? :D Amúgy mi benne az a hatalmas macera? Nem vágom.

    Meg lehet csinálni adatbázis nélkül, saját fájlba írással is (XML, JSON, stb.), de röviden és tömören gány megoldás. Túl sok a macera vele, plusz feleslegesen erőforrásigényes egy jóféle adatbázishoz képest.
    De ha csak Te használod egyedül, végül is nem történik nagy katasztrófa, ha ezt választod. Több felhasználó esetén már tényleg nagyon nem jó. Mondjuk egyedüli felhasználóként is jobban járnál adatbázissal. :)

    "Szeretném követni, hogy melyik sorozatból melyik részt láttam, és ez a legegyszerűbb módja, ezért szeretném ezt elérni. Azt hittem erre van már valami egyszerű javascript."
    Te magad mondtad, hogy szeretnéd géptől és böngészőtől függetlenül elérni ezeket az adataidat. Akkor meg gondolom ebből világos, hogy a kliensoldali mentés (pl. cookie-ba, stb.) NEM elég.

    Mindenesetre az már világos, hogy ennek semmi köze nincs a JavaScript topichoz. :D

  • jeges
    senior tag

    Szerver oldali fájllal nincs baj, csak nagyon macerás egy adatbázist létrehozatni velük. Amit linkeltél meg jó, csak ennél egyszerűbb dolgot szeretnék, saját oldalra. (ahol 1 képernyőn kifér az a 10 sorozat amit nézünk)

    Jeges
    Rákattintok a linkre, és úgy marad = úgy marad, nem csak átmenetileg lesz színezett.
    Szeretném követni, hogy melyik sorozatból melyik részt láttam, és ez a legegyszerűbb módja, ezért szeretném ezt elérni. Azt hittem erre van már valami egyszerű javascript.

    ehhez szerver-oldali kód szükséges, mint már megírták korábban.
    (látom, onnan küldtek ide - valszeg félreértésből)

  • sekli
    addikt

    Ha CSS-t használok, akkor csak nálam fog beszíneződni, amíg nem törlöm a cachet/előzményeket, vagy amíg nem nézem meg másik gépen. (div:active, és div:visited)

    Áttűnést is lehet CSSel csinálni már (-moz-transition), de nekem tényleg csak az kéne, hogy ha random gépről ránézek, akkor az ott legyen.

    Ha el is akarod menteni az állapotát, akkor már mindenképp szerveroldali kód (is) kell. Ha nem akarsz adatbázist, fájlban is tárolhatod az adatokat. Én mondjuk inkább adatbázist használnék.

    Ezt azért nézd meg, hátha létezik már olyan, amit szeretnél: [link]

  • jeges
    senior tag

    Ha CSS-t használok, akkor csak nálam fog beszíneződni, amíg nem törlöm a cachet/előzményeket, vagy amíg nem nézem meg másik gépen. (div:active, és div:visited)

    Áttűnést is lehet CSSel csinálni már (-moz-transition), de nekem tényleg csak az kéne, hogy ha random gépről ránézek, akkor az ott legyen.

    nem biztos, hogy jól értem, mit szeretnél: a kérdésben olyasmit írtál, hogy ha rákattintasz a linkre, úgy marad. ebből nekem az jött le (lehet, tévesen), hogy ha valaki rákattint, neki úgy marad, másoknak meg nem. ezek szerint valami admin-felületet szeretnél, ahol beállíthatod, melyik link legyen a kiemelt egy-egy sorozatból?

  • jeges
    senior tag

    Üdv

    Lehetséges MYSQL adatbázis nélkül csinálni olyasmit, ahol fel van sorolva 6-7 sorozat, mellette pedig a 1-24-ig számok, és ha rákattolok az 1esre, akkor annak megváltozik a színe, és kiemelt lesz? Példának okáért

    How I Met Your Mother 1-2-3-4-5-6-7-8-9-10....

    Esetleg ha tudjátok ennek mi a neve, akkor rákereshetnék neten, hátha van már kész script is, így viszont nem tudom mire keressek.

    ehhez nincs szükség szerver-oldali kódra. önmagában az, hogy klikkre történjen valami a felületi elemmel (pl változzon a színe, mérete, háttérszíne, stb.), jó esetben elérhető html+css kóddal is (erre vannak többek közt a css pszeudo-osztályok). bonyolultabb (pl áttünések) történésekhez szokás javascriptet használni.

Új hozzászólás Aktív témák

Hirdetés