Hirdetés

Keresés

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

  • Doink
    aktív tag

    Sziasztok
    Segítséget kérnék egy megosztott Excel fájl felhasználónak történő tájékoztatásra.
    A következőt kellene csinálnia a programnak:
    A nevek egy sorban vannak, alatta pedig azok a napok amiket nem használt még fel a szabadságaiból.
    Nekem az kellene hogy például június 01-el írja ki azoknak a nevét (vagy vmi figyelmezető) akik nem használták fel a szabadságuk 70%-át.
    Ezt vajon meg lehet oldani ezzel? (VBA-ban meg lenne, de az nem működik ebben a formában)
    Köszönöm

    Ilyen kimutatást ugyan abban az excelben is tudsz csinálni.
    Ha programot akarsz rá írni mert pl. emailben akarod értesíteni akkor választasz egy egyszerű nyelvet (pl.: python, javascript) és letöltöd vele a doksit csv-ben és szerintem ettől a ponttól nagy problémába nem fogsz ütközni.

  • Doink
    aktív tag

    Hello,
    Amit szeretnék: 2023 Január 28 Szombat /óra nem kell, se időzóna/
    Hogy van-e pont vagy nincs nem érdekel.
    Azt tudom, hogy darabonként össze rakom.
    De van e rá date object?
    .toLocaleDateString('hu-HU') - ez 2023. 01. 28. ezt eredményezi.
    tehát ez így nem jó

    Natív js:

    // 2023. január 30., hétfő

    new Intl.DateTimeFormat('hu-HU', {
    weekday: 'long',
    year: 'numeric',
    month: 'long',
    day: 'numeric'
    }).format(new Date())

  • Doink
    aktív tag

    Sziasztok!

    Keresem a megoldást az interneten, de sajnos nem találok megfelelőt.

    Adott egy kód. Az lenne a cél, hogy ha kiválasztom pl az Almát, akkor a DEMO felirat zöldre váltson. Vagy ha a Narancsot, akkor a felirat változzon.

    Egy a lényeg, nem tudok nekik feltétel rendszert adni sajnos, eddig egyik próbálkozásom sem hozott eredményt.

    Csinált már valaki ilyet?

    Előre is köszönöm

  • Doink
    aktív tag

    Sziasztok,
    Van valakinek ötlete, hogy az alábbi kódsor, miért csak a div elemet teszi a tr-hez?
    tr.appendChild(document.createElement("td").appendChild(div));

    Mintha td létrehozását simán átugraná.

    Mert a 2. appendChild visszatérési értéke a gyerek lesz (jelen esetben a div és nem a td).

  • Doink
    aktív tag

    Van X db képem. A példában most legyen 1538, és ezt Y darabszámban szeretném megjeleníteni. A példában legyen ez 200.

    var allpicture = 1583;
    var pictureperpage = 200;
    var actualpage = 1;

    Készítettem egy változót ami kiszámolja, hogy hány lapon fér el X kép:
    var totalpage = Math.ceil(allpicture / pictureperpage);

    Mi az első és utolsó kép száma az N. lapon.
    if (actualpage == 1) { var firstpiconpage = 1; } else {
    var firstpiconpage = ((actualpage - 1) * pictureperpage) + (actualpage - 1); }
    if (actualpage == 1) { var lastpiconpage = firstpiconpage + (pictureperpage-1); } else {
    var lastpiconpage = firstpiconpage + pictureperpage;
    }

    if (firstpiconpage > allpicture) { var firstpiconpage = allpicture; }
    if (lastpiconpage > allpicture) { var lastpiconpage = allpicture; }

    Kérdésem a szokásos. Van e valamilyen forumla, amivel egyszerűbb lehet a kód?
    JSFiddle DEMO

    var firstpiconpage = (actualpage - 1) * pictureperpage + 1;
    var lastpiconpage = (actualpage - 1) * pictureperpage + pictureperpage;

    Az if-ek nem kellenek.

  • Doink
    aktív tag

    Eddig jutottam . Az a baj vele, hogy mindkét alert undefined-et mutat .
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>File(s) size</title>
    <script>
    function sendFiles() {
      const imgs = document.querySelectorAll(".txt");
    alert(imgs[0])
    alert(typeof imgs.file)
    };
    </script>
    </head>
    <body onload="updateSize();">
    <p><input id="uploadInput" type="file" name="myFiles" onchange="sendFiles();">
    <p><input type="submit" value="Send file"></p>
    </body>
    </html>

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <style>strong { color: red }</style>
    <title>File(s) size</title>
    <script>
    function readTextFile(file) {
    const reader = new FileReader();
    reader.onload = (event) => {
    document.getElementById('file-content').innerHTML += `<strong>${file.name} (${file.size} bytes):</strong> <pre>${event.target.result}</pre> <br><br>`;
    };
    reader.readAsText(file);
    }

    function sendFiles(elem) {
    document.getElementById('file-content').innerHTML = '';

    for(const file of elem.files) {
    readTextFile(file);
    }
    };
    </script>
    </head>
    <body>
    <p><input id="uploadInput" type="file" name="myFiles" onchange="sendFiles(this);">
    <p><input type="submit" value="Send file"></p>
    </body>

    <p id="file-content"></p>
    </html>

  • Doink
    aktív tag

    Hali.

    Ugye jól gondolom, hogy ha a Javascriptben kapok az XMLHttpRequestre és Fetch-re is CORS problémát, akkor én a szerver beállítása nélkül nem tudok mit csinálni, igaz? (Utána olvasva és pár trükköt bevetve is ez jön nekem ki.)

    De ez csak JS-ben fordul elő, viszont PHP, C#, Java lazán tudja fetchelni az adatot a külső api-ról, CORS nélkül, de JS esetében már jön az error.

  • Doink
    aktív tag

    Sziasztok

    Valamit elrontok és nem tudom mit :(

    Van egy php/MySQL lekérdezésem.
    Azt szeretném elérni, hogy keresés közben a Keresés gombom ne legyen elérhető (ne nyomogassa többször a user).
    Amint vége a keresésnek a gomb legyen újra aktív.

    Találtam megoldásokat, de egyiket sem tudtam beállítani.
    Ez talán a leginkább szimpatikus nekem:

    $(function()
    {
    $('#keres_btn').on('click',function()
    {
    $(this).val('Keresés alatt ...')
    .attr('disabled','disabled');
    $('#keres_form').submit();
    });

    });

    A bajom az, hogy amint beállítom, nem fut le a query. Látom, hogy a gombon van változás, de a keresés nem fut le, nem lesz semmilyen eredménye.

    Mit rontok el?
    Előre is köszi ;)

    <!DOCTYPE html>
    <html>
    <body>

    <button id="btn">Click me</button>

    <script>
    const btn = $("#btn");

    btn.on("click", () => {
    btn.attr("disabled", "disabled");

    $.get("/egy-szep-url")
    .then((response) => {
    // 200 OK jött vissza
    }).catch((error) => {
    alert(error);
    }).always(() => {
    alert("Most fog lejönni a disabled");
    btn.removeAttr("disabled");
    });
    });
    </script>
    </body>
    </html>

  • Doink
    aktív tag

    megoldás:

    var matches = document.querySelector('[title^="Valami kezdete "]')

    Azért írd bele hogy iframe:

    document.querySelector('iframe[title^="Valami kezdete"]')

  • Doink
    aktív tag

    Operat használok, abban nem történik semmi f12-re. :))
    Amúgy ezen példákból se derül ki számomra mi a lényege ennek az egésznek. Ua eljárás csak a szöveg más és 1x menne azt mondod, 2x meg nem. Lövésem sincs hogy jön ez összefüggésbe a button onclickkel. :F

    Az összefüggés ott van hogy a 2 függvényed blokkoló az onclickben, vagyis a böngésző addig nem rajzolja újra az oldalt amíg nem végzett mind2vel. (addig befagy a böngésző mivel 1 szál van)
    Az én példámban is csak az utolsó alert() OK után fogja újrarajzolni neked.

    Ennek az oka az event-loop modell, ami akkor kurva jó ha sok apró dolgot csinálsz async (jellemzően webes felületeken ez történik).

    Operaban ctrl+shift+I

  • Doink
    aktív tag

    Ezeket még nem értem amit írsz.

    Példa, ez mind blokkoló másold be az F12 console-ba és nyomj entert:

    document.body.innerHTML = "Ezt se látod";
    alert("ugye?");
    document.body.innerHTML = "Meg ezt se látod";
    alert("ugyehogyugye?");
    document.body.innerHTML = "Na ezt látod";
    alert("Na majd most fogja újrarajzolni az oldalt a böngésző mert előtte minden blokkoló");

  • Doink
    aktív tag

    Mert a gen() függvényed és a work() is blokkoló.
    Ha beteszed a work() öt egy setTimeoutba akkor menni fog. Természetesen nem ez a szép megoldás de nézd át hogy a javascript hogy működik, 1 szál, eventloop stb.

    Akarom mondani a gen()-t, nem a work-öt.

  • Doink
    aktív tag

    Üdv!

    Van egy ciklusos scriptem, aminek a lefutása alatt szeretném kiíratni, hogy "dolgozom az eredményen...", ami a végén felülíródna az eredményekkel.
    A ciklust egy gomb lenyomása indítja, ahogyan a fenti üzenet kiíratását is (2 függvény indítás onclick eseményre), de nem jelenik meg csak mikot lefut a ciklusos függvény is és nem értem miért, hisz az infót kiíratót teszem előre? Hogyan lehetne ezt megoldani?

    <button onclick="work(), gen()">ok</button>
    <p id="res"></p>

    <script>
    function work() {
    document.getElementById("res").innerHTML = 'dolgozok az eredményeken...';
    }

    :R

    Mert a gen() függvényed és a work() is blokkoló.
    Ha beteszed a work() öt egy setTimeoutba akkor menni fog. Természetesen nem ez a szép megoldás de nézd át hogy a javascript hogy működik, 1 szál, eventloop stb.

  • Doink
    aktív tag

    Áhh köszi, és annak mi lenne a módja, hogy csak akkor töltsön be a template, ha megjött az adat? Sima ngIf-el oldjam meg, vagy más a módi erre?

    Amit még hirtelen nem találok, hogy miként kellene megoldanom ha a hirdetéseket nem táblázatban, hanem listában vagy akármiben tárolnám, és szeretném használni a paginator-t?
    Inkább úgy kérdezem, hogy nekem kellene lekezelni, hogy ha lapoz a felhasználó, akkor az ngFor a következő 10-et rakja ki?

    Mert táblázatokra tök jó példákat találtam, ahol meg van oldva a lapozás egyszerűen, de listára nem találok hasonlót

    - ngif-el és addig kiteszel egy spinnert amíg tölt
    - resolver-rel és akkor addig el se éred a route-ot [link]

  • Doink
    aktív tag

    Ha lenne admin felhasználóm is, akkor arra mi a bevett gyakorlat? Pl ha ugyan azt az oldalt is láthatnák 1-2 plusz funcióval, copy paste a template, vagy ki kellene valahogy egészíteni?

    Templatebe is lehet if-et írni.

    *ngIf="isAdmin()"

  • Doink
    aktív tag

    Akkor csak nálam nem működik valamiért. Az első objektum értékeit ki tudom olvasni, csak a másodikat nem. Lehet hozzá köze annak, hogy a json-t egy php fájl generálja?
    A javascript pedig így dolgozza fel:

    $.getJSON("setup.php?eszkoz="+eszkoz, function (result) {kesz = result;

    document.getElementById("username").innerHTML = kesz[0].username;
    document.getElementById("eszkoz").innerHTML = eszkoz;

    document.forms["myForm"]["p01"].value=kesz[0].upload_interval;
    document.forms["myForm"]["p02"].value=kesz[0].minspeed;
    document.forms["myForm"]["p03"].value=kesz[0].waitsleeptime;

    document.forms["pidForm"]["pidt01"].value=kesz[1][0].ido;
    document.forms["pidForm"]["pidt02"].value=kesz[1][1].ido;
    document.forms["pidForm"]["pidt03"].value=kesz[1][2].ido;
    document.forms["pidForm"]["pid01"].value=kesz[1][0].pid;
    document.forms["pidForm"]["pid02"].value=kesz[1][1].pid;
    document.forms["pidForm"]["pid03"].value=kesz[1][2].pid;


    }

    Debuggerrel is nézted hogy mi történik?

  • Doink
    aktív tag

    A 04,05,06 is string, csak a példából lemaradtak a macskakörmök.
    Viszont a json[1][0].param nem működik.

    Ha alert()-el kiíratom a weblapra az eredményt, a json[1][0] -ra undefined-et ír. A json[1][0].param -ra fel sem jön az ablak.

  • Doink
    aktív tag

    Mert a példában is úgy csinálták

    constructor() {
    this.sortedData = this.desserts.slice();
    }

    desserts egy interface-t valósít meg

    igen, szervertől kapok adatot, és ngOnInit-ben töltöm fel a tömbjét

    viszont a példában van egy ideiglenes változó amiben rendezi az adatokat, ezért kell átadni neki azt a tömböt

    Zedz: Rendben, azt hittem erőből menni fog ez :D

    Mert beégette az adatokat, ha innen akarsz hívni egy service-t akkor neked így indítani a konstruktort nem sok értelme van (egy üres tömböt deklarálsz majd belekopizol egy üres tömböt). Viszont ha azon a vonalon vagy hogy resolve-olod a state-ben a service hívást akkor akár még járható út is lehet, hiszen akkor van mit lemásolni.

  • Doink
    aktív tag

    hülyeséget mondtam, mert elvileg mindenen működik ez a slice, a példában is egy interfacet valósítottak meg

    Viszont ami szerintem a hiba, hogy ha jól tévedek, a construktor előbb fut le mint az ngOninit, viszont a construktorba hívom a slice()-t, az ngOninitbe meg töltöm fel a tömböt az objektumokkal

    Erre mi lehetne a megoldás? Nemes egyszerűséggel átdobtam a contruktorba a tömb feltöltést, de persze nem jutottam semmire :D

    Minek hívod meg a slice-t a konstruktorban? Gondolom te http-n kapsz valamit és annak az eredményét beteszed egy változóba és ennyi.

    És igen a slice az tömbön működik. Így paraméter nélkül meg semmit se csinál csak egy shallow copyt.

  • Doink
    aktív tag

    Jah, bocsesz :D
    [ezt] csináltam, de a slice-ra hibát ad, ha objektumra hívom meg, de ahigy olvastam a slice() az tömbökre használható

  • Doink
    aktív tag

    Jelenleg számomra az lenne az ideális, ha a felugró "Mentés másként" ablak mentés gombjának megnyomását tudnám számolni. Ha létezik ehhez valamilyen megoldás, az már nekem elegendő lenne.

    Calibre-hez nem tudok hozzászólni, esetleg az iframe title-t nézd meg betöltés után hogy 404-van benne vagy sem.

  • Doink
    aktív tag

    Sziasztok!

    Az alábbi programmal kapcsolatban szeretnénk segítséget kérni.

    <!DOCTYPE HTML>
    <html>
    <body>
    <button id="download">Download</button>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
    <script type="text/javascript">
    $('#download').click(function() {
    download(
    'http://nogin.info/cv1.doc',
    'http://nogin.info/cv2.doc',
    'http://nogin.info/cv.3doc',
    'http://nogin.info/cv4.doc');
    });
    var download = function() {
    for(var i=0; i<arguments.length; i++) {
    var iframe = $('<iframe style="visibility: collapse;"></iframe>');
    $('body').append(iframe);
    var content = iframe[0].contentDocument;
    var form = '<form action="' + arguments[i] + '" method="GET"></form>';
    content.write(form);
    $('form', content).submit();
    setTimeout((function(iframe) {
    return function() {
    iframe.remove();
    }
    })(iframe), 2000);
    }
    }
    </script>
    </body>
    </html>

    Az oldalon több gombot helyeztem el, aminek megnyomására letöltődik a beírt 4 linken található file. Nem minden esetben érhető el mind a négy file, a számuk 1-4-ig változó.

    Az első kérdésem ahhoz kapcsolódik, hogy a gomb megnyomása után max. négyszer (attól függően hogy a linken elérhető file van vagy sem) felugrik a "Mentés másként" ablak, amiben a letöltés elindításához meg kell nyomnom az OK gombot. Hogyan lehetne megoldani, hogy az ablak ne ugorjon fel, hanem a letöltés azonnal induljon el?

    A második kérdés, hogyan tudnám számolni, hogy egy gomb megnyomása után hányszor ugrik fel a "Mentés másként" ablak? A műveletet egyszerűen nem tudom elcsípni.

    Azért ez a programkódot használom, mert ennél ha egy linken nem érhető el a letöltendő file, akkor továbblép (semmi sem látható belőle, valójában ezt szeretném számolni), és nem lép ki az oldalból.

    Amiket még próbáltam, azokkal az a probléma, hogy ha egy olyan linkre fut, ahol nincs letölthető file, akkor az ablak helyén egy üzenet jelenik meg (a file nem létezik üzenettel). Nekem fontos hogy ez ne jelenjen meg, hanem a program ezt a háttérben lekezelje. A betett program ilyen.

    1. kérdés: Nem lehet, a user beállította a böngészőjében hogy kérdezzen rá akkor rá fog kérdezni. (IE-nél lehet valamit hegeszteni rajta talán mert nekik van ilyen: window.navigator.msSaveOrOpenBlob)
    2. kérdés:
    Én fetchelném őket blob-okba aztán utána save.
    Ezt az iframe-es / 4 dollárjelért jquery behúzásos setTimeoutos mókát nem biztos hogy eröltetném.

  • Doink
    aktív tag

    https://jsfiddle.net/amdni/xv0q7wra/1/#&togetherjs=jBfuAjbx0j

    Az első <opiton> működik, benne vannak az értékek, amit mysql adatbázisból olvas ki.
    Azt szeretném, hogy a második <select><option> attól függően hogy milyen érték id van kiválasztva az elsőben, más tábált olvasson majd be az adatbázisba azaz másik php függvény fusson le. Erre gondolom egy if vagy case függvény megfelelne, de nem tudom hogy hogyan vigyem be php-ba azt az értéket, amit kiválasztottam az első <option>-ban, consol-ra ki tudom íratni a kiválasztottat, de a php-be nem tudom átvinni, undifined az érték.

    Php-ben kell egy beadandót csinálnom, de úgy látom hogy mindenképpen kell javascript hozzá, amihez még nem értek.

    Hát ha nagyon gettoban nyomod és csak a php akkor onchange-nél írd át a document.location.href -et úgy, hogy megkapja az első select kiválasztott idjét pl: http://blablalba/products?product_id=2
    És így php-ban már látod a $_GET['product_id']-t és csak 1 sor js-t kellett írni.
    Ez a megoldás több sebből is vérzik de csak azért írtam hogy lásd hogy megoldható.

    Amúgy inkább ajaxal kéne, ha az első select változik akkor fetch()-elsz egyet ahol visszakapod a kiválaszott product színeit json-ban. Utána meg jsből kicseréled az alsó select értékeit.

  • Doink
    aktív tag

    Hát hogy, hogyan lehetséges az eredményhez pluszban hozzá adni azt, hogy milyen háromszögről van szó és ez alapján plusz még képet is..
    Illetve mit és minek az értékét érdekes ilyenkor vizsgálni? input field értékét? és azokat összehasonlítani?

    Képet canvas-ba ki tudod rajzolni.

  • Doink
    aktív tag

    Sziasztok!
    Segítséget szeretnék kérni, de abszolút sötét vagyok a témában. Nem találtam jobb topicot erre, remélem a végén érthető lesz, miért.
    Röviden arról van szó, hogy csinálok egy egyszerű újságot Scribussal, ezt PDF-ként mentem el a végén. Ebből szeretnék csinálni egy flipbook (flyer?) szerű online újságot, olyat mint ami pl. a LDILnek is van. Rengeteg online oldal van erre, letölthető program is, de ezeket regisztrálás vagy fizetős létük miatt egyelőre szeretném elkerülni. Viszont az egyik oldalon találtam egy megfelelő megoldást, viszont itt jön a sötétségem, azaz hogy mit kell ezzel tennem? Ha jól gondolom telepíteni kellene valamilyen környezetet? Vagy valamilyen fordító kellene hozzá? Valamelyikőtök el tudná magyarázni szájbarágósan, hogy milyen lépések szükségesek nekem? Nekem csak annyi a lényeg, hogy a saját weboldalon meg tudjam osztani az elkészült újságot.
    Ha nem erre kell keresgélnem akkor bocsánat.
    Előre is nagyon köszönöm!

    - egy notepad kell hozzá
    - ha nincs jquery (1.7 vagy újabb) az oldaladon akkor azt is letölöd
    - letölöd ezt is
    - scriptek közé beteszed őket, jquery után legyen a turn.js

    <script src="......valahol a szervereden....../jquery.min.js">
    <script src="......valahol a szervereden....../turn.min.js">

    - html <body>-ba bevered azt ami az oldalukon is látszik "Lets code" címmel

    <div id="flipbook">
    <div class="hard"> Turn.js </div>
    <div class="hard"></div>
    <div> Page 1 </div>
    <div> Page 2 </div>
    <div class="hard"></div>
    <div class="hard"></div>
    </div>
    <script type="text/javascript">
    $("#flipbook").turn({
    width: 400,
    height: 300,
    autoCenter: true
    });
    </script>

    - minden div egy oldal szóval a csodaprogramodól html-be exportálod ki és oldalanként beteszed a kódjukat a fenti <div></div>-ekbe

  • Doink
    aktív tag

    Sziasztok.
    Van egy háromszög területet/kerületet kiszámító JS programom.
    Azt szeretném ha 3db input mező érték megadásából meglehetne azt állapítani, hogy a háromszög. egyenlő oldalú, egyenlő szárú illetve szabálytalan háromszög-e. Ezt egy eredmény részben kiíratni és egy típusnak megfelelő képet hozzá csatolni.
    Eddig 3 változót hoztam létre hozzá.
    var isosceles= base === b_side === c_side;
    var equiletal= base === b_side !== c_side;
    var uneven= base !== b_side !== c_side;

    De nem biztos, hogy ez a megfelelő kiindulási pont.
    Akár jQuery-s megoldás is jó lenne.

    Itt egy rossz megoldás mert az általad írt feltételeket ki kellene javítani:
    (1 háromszög nem akkor egyenlő száru ha base === b_side !== c_side, hanem ha bármelyik 2 oldala egyenlő)
    Vagyis lehet hogy jó csak a base nekem nem mond semmit egy háromszögről azon kívül hogy "az szokott alul lenni".

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Page Title</title>
    </head>
    <body>

    <input id="a" type="number">
    <input id="b" type="number">
    <input id="c" type="number">
    <input type="submit" onclick="calc()">

    <div id="result"></div>

    <script>
    function getType(a, b, c) {
    if ((a === b) && (b === c)) {
    return "isosceles";
    } else if ((a === b) && (b !== c)) {
    return "equiletal";
    } else if ((a !== b) && (b !== c)) {
    return "uneven";
    }
    return "???";
    }
    function calc() {
    const a = parseInt(document.getElementById("a").value);
    const b = parseInt(document.getElementById("b").value);
    const c = parseInt(document.getElementById("c").value);

    document.getElementById("result").innerHTML = `${a} ${b} ${c} => ${getType(a, b, c)}`;
    }
    </script>
    </body>
    </html>

  • Doink
    aktív tag

    Sziasztok!
    Egy olyan JS progit készítek, amelyben a vászon nagyobb a kijelzőnél, tehát a képernyő görgethető. Az lenne a kérdésem, hogy milyen utasítással lehet szöveget és képet elhelyezni úgy, hogy az görgetéstől függetlenül mindig látszódjon pl. az ablak bal felső sarkában?
    Eddig így:
    var vaszon = document.getElementById('rajzvaszon');
    var rv = vaszon.getContext('2d');
    (...)
    rv.font = "30px Comic Sans MS";
    rv.fillStyle = "yellow";
    rv.textAlign = "left";
    rv.textBaseline = "top";
    rv.fillText("<ESC>: kilépés",vaszon.pageX+10,vaszon.pageY+10);

    próbáltam, de nem vezetett eredményre (sem a vaszon.pageX, sem rv-vel sem canvas-sal).

    CSS-el.
    position: fixed;

  • Doink
    aktív tag

    Sziasztok!
    Adott egy feladat typescriptben:
    // Write a program that draws a
    // pyramid like this:
    //
    // *
    // ***
    // *****
    // *******
    //
    // The pyramid should have as many lines as lineCount is

    A neten találtam egy működő megoldást:

    'use strict';
    export {}

    let lineCount: number = 4;

    for (var i = 0; i < lineCount; i++) {
    var str = ' ';
    for (var j = 1; j < lineCount-i; j++) {
    str = str + ' ';
    }
    for (var k = 1; k <= (2 * i + 1); k++) {
    str = str + '*';
    }
    console.log(str);
    }

    A gond az, hogy nem nagyon értem, mi mit csinál a kódban. Vagy megfordítva, nem áll össze, hogy a feladat alapján mi az, amit le kéne programozni. Ha fejben meglenne, a lekódolás már nem lenne gond. Segítene valaki az értelmezésben?
    Köszi! :R

    Azt kell leprogramozni hogy a piramis tetején 1 csillag van aztán mindig 2-vel több.

    *
    ***
    *****
    *******

    Miután ez meg van kicsit reszelgetni kellene hogy pár szóköz (legyen _) beszúrással középre kerüljön a piramis.

    ___*
    __***
    _*****
    *******

  • Doink
    aktív tag

    Sziasztok!
    Van egy ilyen string-em: var str = 'ID=123456&stb'
    Ebből szeretném a számsort kiszedni, viszont a számjegyek száma változó (lehet csak 123 is) és az ID szám után vagy & karakter következik vagy ott van a sor vége. Hogy tudnám kiszedni a számsort a szövegből feltétel kezelés nélkül? :)

    var ID = str.substring(str.indexOf('ID='), str.indexOf(???))

    new URLSearchParams("ID=123456&stb=7&valami=rrttgg").get("ID")

    Ha IE11 is cél akkor van hozzá polyfill.

  • Doink
    aktív tag

    'estét!

    jQuery bind kérdésem volna. Van egy oldalon több textarea-m evalText class-szal, és hozzájuk egy működő bind-om:

    $('.evalText').each(function(){
    $(this).bind('onPaste', function(){
    textLimit(this);
    });
    });

    Ha semmi mást nem csinálok, csak az 'onPaste' mellé beírom az 'onKeyUp'-ot (tehát úgy néz ki, hogy bind('onPaste onKeyUp'), minden más változatlan), akkor egyik eventhez sem történik meg a kötés, pedig a jQuery doksi szerint mennie kellene. Mit csinálok rosszul?

    Az event nevek nem stimmelnek.

  • Doink
    aktív tag

    Csupán érdeklődésképp, ha már így szóba került...

    Pure JavaScriptben van-e coro(utine) függvény? Természetesen nem built-in-re gondolok, hanem bármilyen sajátra. Illetve await és valami executorban futtatásra is kíváncsi vagyok. Bár gondolom az executor veszett ügy, mivel még mindig egy egyszálas, alapvetően böngészőben futó szkriptnyelvről beszélünk. Azt meg nehezen tudom elképzelni, hogy a browser csak úgy engedi a threadek halmozását.

    Vannak webworkerek, async és await is.

  • Doink
    aktív tag

    Nagyon köszönöm, hogy megnézted, így már érthetőbb, valamiért viszont azt kapom, hogy:
    ERROR TypeError: Cannot read property 'entries' of undefined
    at SafeSubscriber._next (file:///android_asset/www/build/main.js:2649:46)
    at SafeSubscriber.__tryOrUnsub

    A sulyhavontát logoltam és megjelennek az adatok, szóval nem értem, hol akad el. Rá tudnál pillantani kérlek :D ? Beleírtam a beolvasás módját, valamint a d3 nestinget is. (lefutni nem fog jsfiddlen, mert adatbázisból olvas)

    [link]

    Ha kicseréled a firebase részt egy JSON.parse()-ra akkor viszont lefutna az is. Az hogy hol akad el az meg oda van írva: 2649:49 és az a baja hogy egy undefined-on hívódik meg az entities() fgv.
    Itt azért olyan kérdés is felmerül hogy nem-e egyszerűbb a d3.nest előtt összedobni ezt a struktúrát egy ciklussal mint utána 4-el.

  • Doink
    aktív tag

    köszi, ez megvan, csak az a baj, hogy az adatokat egy firebase adatbázisból olvasom be majd mappelem, a képen látható eredményt kapva. Szóval nem tudom így manuálisan beírogatni a számadatokat, hanem ezen az objektumon kéne végigmenni és úgy felépíteni a barchartot.

    Egyébként erről van szó:[link]

    Akkor igazából mindent tudsz, mi a kérdés? :D
    [link]

  • Doink
    aktív tag

    Sziasztok!

    Régóta leragadtam egy egyszerűnek tűnő feladatnál és stackoverflowon sem tudok választ kicsikarni senkiből, hátha van itt valaki, aki jártas a Chartokban.

    van nekem egy ilyen év-hónap-napra bontott objektumom, azon belül a példában az szerepel, hogy az adott napon hány kg halfajta lett kifogva. Ezt az adatot szeretném barcharton megjeleníteni, napi bontásban. Úgy képzelem el, hogy egy napra mutatja a teljes fogást az oszlop, azon belül pedig színekkel halfajtára bontva.

    Így néz ki a logból:

    Valahogy ebbe kéne megcsináljam. Van ötlete valakinek, hogy hogyan kellene? Egyszerűen sehol nem találok normális tutorialt, csak statikus adatokkal. Ha ezt meg tudnám oldani, akkor valószínűleg ráéreznék a többire is, mert több dologról szeretnék kimutatást. :R

    this.barChart = new Chart(this.barCanvas.nativeElement, {

    type: 'bar',
    data: {
    labels: ???,
    datasets: [{
    label: '# of catches',
    data: ???,
    backgroundColor: [
    'rgba(255, 99, 132, 0.2)',
    'rgba(54, 162, 235, 0.2)',
    'rgba(255, 206, 86, 0.2)',
    'rgba(75, 192, 192, 0.2)',
    'rgba(153, 102, 255, 0.2)',
    'rgba(255, 159, 64, 0.2)'
    ],
    borderColor: [
    'rgba(255,99,132,1)',
    'rgba(54, 162, 235, 1)',
    'rgba(255, 206, 86, 1)',
    'rgba(75, 192, 192, 1)',
    'rgba(153, 102, 255, 1)',
    'rgba(255, 159, 64, 1)'
    ],
    borderWidth: 1
    }]
    },
    options: {
    scales: {
    yAxes: [{
    ticks: {
    beginAtZero:true
    }
    }]
    }
    }

    });

    Mert nem jól adtad meg a dataset-et.
    labels: ['1. nap', '2. nap', '3. nap'],
    datasets: [
    { label: "ponty", data: [5,8,12] }, // 5 ponty az első napon, 8 ponty a 2. napon, 12 ponty a 3.-on
    { label: "keszeg", data: [1,2,3] },
    { label: "kárász", data: [4,5,6] }
    ]

    jsfiddle

  • Doink
    aktív tag

    No és mi van akkor ha beregisztrál, másolja a fájlt, de nyilvánosságra hozza a jelszót? Akkor mások ingyen fognak tudni regisztrálni a másolatokon!
    :((

    Amit te látni fogsz mert aktiválásnál beírod valami adatbázisba és amint gyanúsan sokszor használtak fel egy kulcsot különböző ip/ország/stb helyekről akkor visszavonod a licensz értelmében.

  • Doink
    aktív tag

    Hát ez lehangoló, hogy sokszorosítás ellen nem védhetem a JS-es fájlaimat?
    Mit tanácsoltok, hogy a programocskámat sokszorosítás ellen hogyan védjem: egy másik programnyelvre írassam át talán?, - akkor melyikre?
    :O

    Azért esetedben felmerül a kérdés hogy létezik-e egyáltalán olyan fájl amit lehet védeni sokszorosítás ellen. Szerintem rendre nem az a bevett szokás hogy nem hagyjuk lemásolni, hanem nyugodtam másolhatja de addig nem fogja tudni használni amíg nem aktiválja / beregisztrál és fizet / stb.

  • Doink
    aktív tag

    Sziasztok !
    Írtam egy 8300 db soros programocskát egy közönséges programnyelven, még nincs teljesen befejezve, ezt szeretném átkódolni JavaScript-re, amit aztán szeretnék felrakni egy olcsón fizetős weboldalra. De mielőtt még belevágom magam az átkódolásba, tudnom kellene, hogy a JavaScript-es pl. htm, html, mht fájlokat lehet-e titkosítani úgy, hogy a felhasználók a JavaScript-et semmiképen ne láthassák, de a kiírt tartalmat láthassák is és másolhassák is, a TextArea-jába beírhassanak akármit? Aztán azt is tudnom kell, hogy a JavaScript-es pl. htm, html, mht fájlokat lehet-e sokszorosítás(!) ellen védetté tenni, mert semmiképen sem szeretném azt, hogy a felhasználó sokszorosítsa, ugyanis akkor nincs értelme fizetősé tenni? Van-e olyan neki, hogy az egyik számítógépről nem viheti át a másik számítógépre?
    :F

    Ha valamit csak ki akarsz írni amit másolhat akkor ha szerver oldalon állítód elő nem a böngészőjében javascriptel akkor abból a kliens semmit sem lát csak a végeredményt.

    Ha nem lehet szerver oldalon előllítani akkor Uglify-olni lehet egyébként, ami annyit jelent hogy nehezen érthetővé teszi a kódot de a működését nem befolyásolja. Böngészőben megjelenített html-t és javascriptet nem lehet sokszorosítás ellen védeni, csak licenszel tudod korlátozni a felhasználási feltételeket.

  • Doink
    aktív tag

    Sziasztok!

    Egy valtozoba szeretnek belerakni egy olyan stringet, ami tartalmaz " es ' karaktereket is.

    Mi ennek a modja?

    Kossz!

    \ Backslash-t kell a karakter elé tenni.

  • Doink
    aktív tag

    Sziasztok!

    Van egy belsős oldalunk a cégnél, ahol tételeket rögzíthetünk fel, de csak mindig pár napra előre lehet. Viszont jövő héten én már nem dolgozok, de fel kellene rögzítetlenem valamit jóval előrébb. Írtam az infós srácnak és azt írta, hogy ideiglenes megoldásként menjek az oldalra, majd futtassam meg ezt:
    openWindow('22122017')

    és erre felkellene ugrania a rögzítőablaknak. Ez egy javascript, ha jól gondolom, de hol kell futtatnom?

    Akkor ott is erős a szerver oldali validálás :D

  • Doink
    aktív tag

    Keresek egy olyan programot, amelyik tetszőleges időközönként honlapokat szkennelne, az új eddig meg nem talált linkeket kimásolná és listázná pl word fájlba. Konkrétan arra gondoltam, hogy a honlapomon az európai szociális rendszerek változásai érdekelnek és ezek változásait szeretném követni, úgy, hogy ne kézzel kelljen naponta végigkeresgélni, hanem akár naponta automatikusan tudja a program megadott keresési feladatok alapján keresni listázni és megjeleníteni, amit talált. Gépbekapcsolás és programindíítás után persze. Akár nem ingyenes programra gondoltam.Most kezdek programozni tanulni Javascriptet, szerintem ez a szoftver lenne a diplomamunkám, ha még nincsen ilyen kitalálva. Ha valakinél online tanulhatnék az lenne a legjobb, persze fizetnék a konzultációkért, feladatokért, stb. Kösz előre is.

    Ha javascriptben csinálod akkor az Electron lehet a kiindulási pontod. Ettől függetlenül ez a feladat más nyelveken is megoldható (java,c#, scala, stb.) és szakdolgozatnak ennél combosabb dolgokat szoktak csak elfogadni, szóval ezt tartsd szem előtt.

  • Doink
    aktív tag

    Köszi, ezt az F12-t sem ismertem, így már tényleg átláthatóbb. :R
    Már csak egy kérdésem van. Miféle változó az $?

    Ugyan olyan mint bármelyik másik változó.

  • Doink
    aktív tag

    Köszi szépen! :R
    Igen, tényleg 10 mp a futási idő... :(((

    És ezt a fát hogy kell kiíratni?

    Ezt a fát nem akarod kiiratni mert azt látod a böngészőben F12->source. <html> a fa csúcsa, annak van 2 gyereke <head> <body> és így tovább. A belső adatszerkezet lesz egy fa ahogy a gép tárolni fogja a memóriában hogy gyorsan tudj benne keresni és módosítani.
    Ennek a libnek meg pont az a lényege hogy css selectorokkal tudj keresni/módosítani ebben a html-ben és ne kelljen stringkezelési műveletekkel bajlódni.
    Ha mégis be szeretnéd járni a fát akkor a a dokumentációban találsz olyan metódust hogy .children() ami visszadaja egy node közvetlen gyerekeit és így már adja magát hogy rekurzívan elég egyszerű bejárni.

    A részfát úgy értettem hogy ha van az oldalon egy ilyened és neked kell a price és a name

    <!-- többmillió html kód felette -->
    <div id="product">
    <p class="price">1</p>
    <p class="name">name</p>
    </div>
    <!-- többmillió html kód alatta -->

    és amúgy az oldalon még van ezer más html tag mindenfelé akkor azt így csinálod:

    var $ = cheerio.load(html);
    var product = $("#product");
    var result = {
    price: product.children(".price").text(),
    name: product.find(".name").text()
    }

    és nem ezt:

    var $ = cheerio.load(html);
    var result = {
    price: $("#product > .price").text(),
    name: $("#product > .name").text()
    }

    mert így kétszer végig fog menni az egész fán megkeresni a #product-ot.
    Ettől függetlenül a cheerio oldalán van elég sok példa amit érdemes lenne átfutnod.

  • Doink
    aktív tag

    Köszi, de hibát dob ki:
    "TypeError: (class)@10da0984 nem egy függvény, hanem egy undefined. (9. sor a(z) „cheerio_gasify” projekt „gasify” fájljában)"
    Egyébként az egyes sorok mit csinálnak a te kódban, mert eléggé megvariáltad? :) Vagy miben másabb?

    Más: Ott sajnos nem mindig a helyes ár jelenik meg. :( Például ha email only címkével van ellátva, akkor az oldal forrásában itt található a helyes ár:
    <span class="my_shop_price" data-orgp="49.99" style="color:#CC0000; font-size:28px; font-weight:bold">47.99</span>
    [link]
    Tehát innen hogy tudom kiszedni a 47.99-et?
    A termék nevét meg innen kellene:
    <h1 style="display:inline;">Original Xiaomi Mi Band 2 Smart Watch for Android iOS</h1>
    <span class="allProperty">&nbsp;-<strong>&nbsp;BLACK</strong></span>

    Amúgy ennek a függvénynek nem kellene gyorsabban működnie a string-es megoldásomnál? Mert kétszer lassabban fut le...

    A fenti kódot nodejs-ben futtattam mert a lényegi rész ugyan az google scriptben is:
    var cheerio = cheeriogasify.require('cheerio');

    function run() {
    var response = UrlFetchApp.fetch("https://www.gearbest.com/smart-watches/pp_362705.html");
    var $ = cheerio.load(response.getContentText());
    var result = {
    url: $("meta[property='og:url']").attr('content'),
    price: $(".price_area > .goods_price > .my_shop_price").data('orgp'),
    name: $(".goods-info-top > h1").text()
    }
    Logger.log(result);
    }

    A cheerionak lassabbnak kell lennie amíg csak pár adatra van szükséged, ettől függetlenül így is elég gyors és ugyan úgy lehet rajta gyorsítani ahogy jquery-ben is tudsz (nem az egész fában keresel hanem csak részfában). Az hogy a google script-re milyen korlátozások vannak és ott miért ilyen lassú már maga az url lekérdezés is annak neked kell utánanézni, nodejs-ben 180ms alatt végez a felparseolással és az eredmény kiírással, google scripben pedig ugyan ez a művelet több mint 10 másodperc.

  • Doink
    aktív tag

    Ezt a cheerio lib-et hozzáadtam a projektemhez.
    A példa program működik is, de honnan tudom, hogy miket lehet lekérdezni?
    Például, hogy tudom lekérdezni ennek a terméknek a nevét (nem a title-t, mert az másabb), árát, megjelenített kép linkjét stb...?

    function cheerio()
    {
    var cheerio = cheeriogasify.require('cheerio');
    var response = UrlFetchApp.fetch("https://www.gearbest.com/smart-watches/pp_362705.html");
    var $ = cheerio.load(response.getContentText());
    Logger.log($('title').text());
    }

    Szia, sima css selectorokkal:

    var request = require('request');
    var cheerio = require('cheerio');

    request('https://www.gearbest.com/smart-watches/pp_362705.html', function (error, response, html) {
    if (!error && response.statusCode == 200) {
    var $ = cheerio.load(html);
    var url = $("meta[property='og:url']").attr('content');
    var price = $("meta[property='og:price:amount']").attr('content');

    console.log(url, price);
    }
    });

  • Doink
    aktív tag

    Akkor itt egy ilyen oldal ami ezeket a tagokat tartalmazza:

    <meta property="og:site_name" content="www.banggood.com"/>
    <meta property="og:description" content="Only US$14.44, buy best ANENG AN8002 Digital True RMS 6000 Counts Multimeter AC/DC Current Voltage Frequency Resistance Temperature Tester ℃/℉ sale online store at wholesale price.US/EU warehouse."/>
    <meta property="og:type" content="product">
    <meta property="og:title" content="ANENG AN8002 Digital True RMS 6000 Counts Multimeter AC/DC Current Voltage Frequency Resistance Temperature Tester ℃/℉">
    <meta property="og:url" content="https://www.banggood.com/ANENG-AN8002-Digital-Ture-RMS-Multimeter-ACDC-Current-Voltage-Frequency-Resistance-Temp-Tester-p-1145700.html">
    <meta property="og:image" content="https://img.banggood.com/thumb/view/oaupload/banggood/images/F4/8C/36c71d9d-edb6-402a-abf7-419251b4a5c6.jpg">

    Ezekből szeretném kinyerni a "content"-et.

    De most meg csináltam string-es műveletekkel, ami működik ugyan, csak ha van erre valami beépített függvény, azért mégis jobb lenne azt használni.

    function openGraph(url, type)
    {
    var response = UrlFetchApp.fetch(url);
    var content = response.getContentText();
    var preString = '<meta property="og:'+type+'" content="';
    var searchString = '"';
    var preIndex = content.indexOf(preString)+preString.length;
    var searchIndex = preIndex + content.substring(preIndex).indexOf(searchString);
    return content.substring(preIndex, searchIndex);
    }

    //eredmények kiíratása:
    function onEdit()
    {
    var ss = SpreadsheetApp.getActiveSpreadsheet();
    var sh = ss.getActiveSheet();
    var url = "https://www.banggood.com/ANENG-AN8002-Digital-Ture-RMS-Multimeter-ACDC-Current-Voltage-Frequency-Resistance-Temp-Tester-p-1145700.html";

    Logger.log(openGraph(url, 'site_name'));
    Logger.log(openGraph(url, 'description'));
    Logger.log(openGraph(url, 'type'));
    Logger.log(openGraph(url, 'title'));
    Logger.log(openGraph(url, 'url'));
    Logger.log(openGraph(url, 'image'));
    }

    Illetve az a baj még ezzel, hogy ha a webfejlesztő egy szóközzel többet tesz valahová (mint itt a site_name" és a "content között), akkor már nem működik jól.
    Szóval ezen adatok kinyerésére nincs valami atom biztosan működő beépített függvény?

    A Google Script amúgy Javascript alapú (pl. google táblázatot lehet vele okosítani), de úgy néz ki, hogy vannak olyan JS utasítások amit vagy nem ismer, vagy csak én használom rosszul őket. :F

    Azért nem működik mert szerver oldalon lehúzol egy stringet valahonnan és azt még fel kéne parse-olni hogy ne szövegként kelljen kezelni hanem fába legyen rendezve mint a DOM.
    Erre én kb csak a cheerio nevű lib-et ismerem de szerintem bármilyen xml parser megteszi ha az oldal valid.

  • Doink
    aktív tag

    Sziasztok! IndexedDb a téma, hogyan adhatom vissza a getData() metódussal a táblában található elemeket?

    Az async működést nem igazán vágom :(

    this.getData = function(){
    var open = indexedDB.open(database, 1);
    var data;
    open.onsuccess = function() {
    // Start a new transaction
    var db = open.result;
    var tx = db.transaction(table, "readwrite");
    var store = tx.objectStore(table);

    // Query the data
    var getAllData = store.getAll();

    getAllData.onsuccess = function() {
    data = getAllData.result;
    };

    // Close the db when the transaction is done
    tx.oncomplete = function() {
    db.close();
    };
    };
    return data;
    };

    A egyik megoldás az hogy ígéretet (Promise) adj vissza és belül az onsuccess-nél resolve-old, onerror-nál meg reject-eled.

    this.getData = function(){
    return new Promise(resolve,reject) => {
    let query = db.valami_async_művelet()
    query.onsuccess = function(result){
    resolve(result)
    }
    query.onerror = function(err){
    reject(err)
    }
    }
    }

    Így fogod tudni meghívni:
    ValamiService.getData().then((result) => {
    // beteljesült az ígéret és a result-ban lesz az eredmény
    }).catch(error) => {
    // hiba
    });

    Másik elegáns megoldás ha cold observable-t használsz (rxjs).

  • Doink
    aktív tag

    van egy jelszó vizsgáló scriptem, amibe szeretnék még beletenni egy olyat is, hogy a szóközöket is levágja az elejéről és a végéről

    eddig jutottam el:
    function jelszoEll(){
    var urlap = document.forms['urlap'];
    //nem kezdődhet számmal
    var jelszo = urlap['pwd'].value;
    var jelszo2 = jelszo.trim();
    var hibaHelye = document.getElementById('jelszoErr');
    if (jelszo == jelszo.toLowerCase())
    hibaHelye.innerHTML = "A jelszó nem tartalmaz nagybetűt!";

    else hibaHelye.innerHTML = "";

    }

    de sajna így nem vizsgálja helyesen szóközt
    plusz kellene még bele..számot vizsgáló rész is..

    Az a hiba hogy a jelszo2-be teszed a trimelt stringet és utána nem csinálsz vele semmit.
    Számok:
    var hasNumber = new RegExp(/\d/).test(jelszo2);

    Apró megjegyzés hogy a webes világban bevett szokás szerver oldalon ellenőrizni és visszaküldeni a hibát hiszen szerver oldalon úgyis mindig kötelező ellenőrizni mindenféle inputot.

  • Doink
    aktív tag

    Ja, bocs, nem láttalak, akkor írom a részleteket.
    Az első bekezdés csak tájékoztató jellegű, hogy képben legyetek, majd utána jelzem, mi az ötletem lényege.

    Eredetileg egy magyar származású egyetemista fejlesztett egy progit bizonyítandó, hogy a webes böngészések során lehet követni, ki merre járt és Collision révén Firefox böngészőhöz add-on lett belőle.
    Ennek révén hamarosan fejes lett belőle és megbízott egy művészeti egyetemista csoportot valamilyen alapítványi támogatás révén, hogy csináljanak a programjához vizuális megjelenítést.
    Nagy siker lett Lightbean add-on néven.
    (Azután a srác egy másik nagy cég vezetője lett, amit pár év alatt sikeresen tönkre tett. Akit érdekel Gary Kovacs néven wikipedian megtalálja a történetet.)

    A lényeg:
    adott a Lightbean add-on, aminek minden része ingyenesen használható, és ami legalább két részből áll: az eredeti, böngésző által begyűjtött ip címek és a köztük lévő kapcsolatok rendszerezéséből, valamint a vizuális részből.

    Az ötletem az, hogyha le tudjátok választani a vizuális megjelenítőt és írni hozzá olyan adatbeviteli megoldást, amivel bárki megadhatja az általa ábrázolandó adatokat, akkor egy, az amerikaiaknál és briteknél nagyon népszerűvé vált Freemind-hoz hasonló programot lehetne csinálni. A buktató "csak" annyi, hogy annak már nem javascript fájlokból kell állnia, hanem portable programot kell belőle kreálni.

    A buktató rész valójában nem buktató, hiszen az Electron pont ezt tudja.

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

Hirdetés