Hirdetés

2024. április 24., szerda

Gyorskeresés

Téma összefoglaló

Téma összefoglaló

  • Utoljára frissítve: 2014-02-25 10:20:57

LOGOUT.hu

JavaScript != Java (A JavaScript nem összekeverendő a Javával, két különböző programozási nyelvről van szó!)

Összefoglaló kinyitása ▼

Hozzászólások

(#10202) lanszelot


lanszelot
addikt

Hello,
[link]
Ha letekerem a zöld box-ban lévő szöveget, hogyan tudok a tetejére vissza ugrani, ha egy sima szövegre klikkelek.
Nem "a" tag, és nem gomb.

martonx: Ezt nem értem miért írod? Mindent megcsináltam amit rtatok. Meg is köszöntem. Meg is írtam, hogy hogyan tudom megoldani.
Mi rosszat írtam?

[ Szerkesztve ]

(#10207) Gardaai válasza lanszelot (#10202) üzenetére


Gardaai
senior tag

Cseréld le a my2 functionodat erre:
function my2() {
document.getElementById('fffz').scrollTop = document.getElementById('jump').offsetTop - 250;
}
Így gondoltad?

↪ PlayStation játékok / PS Plus előfizetés - olcsóbban - akár több ezer forint kedvezménnyel!! https://bit.ly/hardverapro-psn-gift-cards-by-gardaai

(#10208) lanszelot válasza Gardaai (#10207) üzenetére


lanszelot
addikt

Először is köszönöm szépen a választ.

Közben sikerült megoldani, csak nem tudtam meg ide megírni.
Több módon oldottam meg, mind benne van a linkelt kódban.
A legörgetés alatt van egy szöveg, és a box-on kívül 3 szöveg.

A te megoldásod hibás, 4ik boxon kívüli szövegnek raktam be, és my3 function-t hívja meg.
hibakód:
"Uncaught TypeError: Cannot read properties of null (reading 'offsetTop')"

Azért hagytam benne, hogy meg tudd nézni.

(#10209) Gardaai válasza lanszelot (#10208) üzenetére


Gardaai
senior tag

Persze, hogy hibás, mert kivetted a kódból azt az elemet ahova ugrani szerettél volna. :)
Ha már egy módosított kódba illeszted be az első verziódra készített kódot, nagy eséllyel nem fog működni.
Nyilván tesztelés nélkül nem írok ide egy kódot, hogy nézd meg Te magad jó lett-e.

Volt egy <span id='jump'></span> elemed a fffz ID diveden belül, legfelül és erre írtad a kódodat is, hogy oda ugorjon ami nem működött. Ebből kiindulva lett megírva a kódom.
Ha csak a tetejére szeretnél ugorni, nem pedig egy adott elemhez a szövegen belül akárhova, akkor document.getElementById('jump').offsetTop - 250 helyett csak írj egy nullát, tehát: document.getElementById('fffz').scrollTop = 0;

[ Szerkesztve ]

↪ PlayStation játékok / PS Plus előfizetés - olcsóbban - akár több ezer forint kedvezménnyel!! https://bit.ly/hardverapro-psn-gift-cards-by-gardaai

(#10210) lanszelot válasza Gardaai (#10209) üzenetére


lanszelot
addikt

Elnézést. Nem vettem észre a telefonom csinálta. :R
Nem vettem ki, telefonról csináltam és folyamatosan frissíti az oldalt, és sokszor képtelenség beírni egy szót is.

Mivel beillesztést csináltam, igy össze vissza jelolgetett, és próbáltam gyorsabb lenni mint a frissítés.
Valószínű ekkor véletlen töröltem.
Nem vettem észre.
Borzasztó idegesítő így használni. A telefonos progikkal is ugyanez a gond.
Ha billentyűt csatolok akkor nem csinálja, csak amikor a telefon billentyűzetet használom.

Vissza írtam a sort és így tökéletesen működik. :)
Köszönöm szépen.

(#10212) cigam


cigam
félisten

Egy node.js programot indítanék a géppel együtt szervízként. Eddig ment is, de most már annyira "fejlett", hogy meg kell adni pár paramétert iduláskor (IP címet, portszámot).
Terminálból indítva a könyvtárából szépen elindul (npm start 192.168.1.211), végzi a dolgát. Viszont szervízként már nem akaródzik neki.

[Unit]
Description=bmd_hyperdeck
[Service]
Type=simple
Restart=always
User=pi
Group=pi
Environment=PATH=/usr/bin:/usr/local/bin
Environment=NODE_ENV=production
WorkingDirectory=/home/pi/bmd_hyperdeck_time_remaining
ExecStart=/usr/bin/npm start 192.168.1.211
[Install]
WantedBy=multi-user.target

Ha nem adok meg IP címet, szépen elindul, de nem igazán végzi a dolgát, mert nem tudja hova kell csatlakozni. Ha beírom az IP címet, akkor meg nem indul el, mert csak:
febr 13 18:12:46 pi systemd[1]: Started bmd_hyperdeck.
febr 13 18:12:50 pi npm[9004]: > bmd-hyperdeck-web-time-remaining@1.0.0 start
febr 13 18:12:50 pi npm[9004]: > node server.js "192.168.1.211"
febr 13 18:12:52 pi npm[9378]: file:///home/pi/bmd_hyperdeck_time_remaining/node_modules/open/index.js:93
febr 13 18:12:52 pi npm[9378]: let {name: app, arguments: appArguments = []} = options.app ?? {};
febr 13 18:12:52 pi npm[9378]: ^
febr 13 18:12:52 pi npm[9378]: SyntaxError: Unexpected token '?'
febr 13 18:12:52 pi npm[9378]: at Loader.moduleStrategy (internal/modules/esm/translators.js:133:18)
febr 13 18:12:52 pi npm[9004]: npm ERR! code 1
febr 13 18:12:52 pi npm[9004]: npm ERR! path /home/pi/bmd_hyperdeck_time_remaining
febr 13 18:12:52 pi npm[9004]: npm ERR! command failed
febr 13 18:12:52 pi npm[9004]: npm ERR! command sh -c node server.js "192.168.1.211"
febr 13 18:12:52 pi npm[9004]: npm ERR! A complete log of this run can be found in:
febr 13 18:12:52 pi npm[9004]: npm ERR! /home/pi/.npm/_logs/2024-02-13T17_12_52_635Z-debug.log
febr 13 18:12:52 pi systemd[1]: bmd_hyperdeck.service: Main process exited, code=exited, status=1/FAILURE
febr 13 18:12:52 pi systemd[1]: bmd_hyperdeck.service: Failed with result 'exit-code'.
febr 13 18:12:52 pi systemd[1]: bmd_hyperdeck.service: Consumed 6.825s CPU time.
febr 13 18:12:52 pi systemd[1]: bmd_hyperdeck.service: Scheduled restart job, restart counter is at 598.
febr 13 18:12:52 pi systemd[1]: Stopped bmd_hyperdeck.
febr 13 18:12:52 pi systemd[1]: bmd_hyperdeck.service: Consumed 6.825s CPU time.
febr 13 18:12:52 pi systemd[1]: Started bmd_hyperdeck.
febr 13 18:12:57 pi npm[9550]: > bmd-hyperdeck-web-time-remaining@1.0.0 start
febr 13 18:12:57 pi npm[9550]: > node server.js "192.168.1.211"
...
Van ötlet, megoldás, tipp? Merthogy terminálban simán fut:
node server.js "192.168.1.211"
Connecting into Hyperdeck at: 192.168.1.211
Browser page ready: http://localhost:9088
[18:29:34] A new browser has connected from ::ffff:192.168.1.204

Freeware, és akciós programok egy helyen https://www.facebook.com/freewarenews

(#10214) cigam válasza #79484416 (#10213) üzenetére


cigam
félisten

Sajna nem. Se idézőjellel, se nélküle:
SyntaxError: Unexpected token '?'

Freeware, és akciós programok egy helyen https://www.facebook.com/freewarenews

(#10216) Carasc0


Carasc0
őstag

Sziasztok!

Adott JS generátor, mely 1-től 500-ig generál számokat. Ehhez van egy HTML kódom, amin egy gomb van. Arra kattintva kiválaszt egyet az 500 "különböző"számból, és kiírja a képernyőre:

Probléma: Ez tuti hogy nem 500 különböző számot generál, mert teszteltem. Kigenerálta a 12-t mondjuk hatodjára. Utána 91-edjére megint beadta a 12-t. Nekem az kellene, hogy amit már egyszer kiírt a képernyőre az legközelebb akkor jelenjen meg, ha már egyszer mind az 500 szám 1x a képernyőre került addig ne. Ehhez kellene egy S.O.S help! :R

[ Szerkesztve ]

Gondolkodj globálisan és tegyél lokálisan!

(#10218) Carasc0 válasza #79484416 (#10217) üzenetére


Carasc0
őstag

Huh sajnos ezt is úgy kaptam ezt a kódot, én kuka vagyok ehhez. Gondolom valami módosítás kell csak. Magamtól tuti nem tudnék neki esni :(

Gondolkodj globálisan és tegyél lokálisan!

(#10220) cigam válasza #79484416 (#10215) üzenetére


cigam
félisten

Elméletileg nem, én gépeltem be az ip címet. Köszi a tippet!
Maj megpróbálom eldugni máshova. (rc.local, .bashrc,...)

[ Szerkesztve ]

Freeware, és akciós programok egy helyen https://www.facebook.com/freewarenews

(#10222) cigam válasza #79484416 (#10221) üzenetére


cigam
félisten

Tudom a kódban már egyszer belefutottam, és plusz parancs kellett kiszűréshez, de itt most tényleg nem volt copy/paste. Ha a startig kitörlöm, elindul rendben, csak ugye IP cím hijján nincs mit csinálnia, leáll, de mivel szervíz-ként van bejegyezve, a systemd újraindítja, és kész a végtelen történet. Plusz mielött fix, a kódba épített IP címmet használt, paraméterek nélkül simán beröffent, miután meglettek adva a környezeti változói (Environment=PATH=/usr/bin:/usr/local/bin, Environment=NODE_ENV=production)
Már az is nagy lépés számomra, hogy npm start-al képes vagyok szervízként indítani. Ha a többi autostart megoldással is felsülök, kénytelen leszek visszalépni egyet, és fixen a kódba beleírni az IP címet.

Freeware, és akciós programok egy helyen https://www.facebook.com/freewarenews

(#10224) Carasc0 válasza #79484416 (#10219) üzenetére


Carasc0
őstag

const selectedNumbers = new Set();
function generateUniqueRandomNumbers(min, max, count) {
    const uniqueNumbers = new Set();
    while (uniqueNumbers.size < count) {
        const randomNumber = Math.floor(Math.random() * (max - min + 1)) + min;
        uniqueNumbers.add(randomNumber);
    }
    return Array.from(uniqueNumbers);
}
function showRandomNumber() {
    const uniqueRandomNumbers = generateUniqueRandomNumbers(1, 500, 500);
    const randomNumber = uniqueRandomNumbers[0]; // Csak az első számot jelenítjük meg
    document.getElementById("randomNumberDisplay").textContent = `${randomNumber}`;
}
function selectNumber() {
    const displayedNumber = parseInt(document.getElementById("randomNumberDisplay").textContent);
    selectedNumbers.add(displayedNumber);
    showRandomNumber();
}
// HTML gomb kattintás esemény kezelése
document.getElementById("selectButton").addEventListener("click", selectNumber);

Gondolkodj globálisan és tegyél lokálisan!

(#10226) Carasc0 válasza #79484416 (#10225) üzenetére


Carasc0
őstag

Igazából péntekre kéne!

Tulajdonképpen iskolai feladat. Tombolasorsolára kell egy generátor ami gombnyomásra kiír egy számot. Működik is, csak az lenne a lényeg, amit már egyszer kiírt a képernyőre azt többet ne ismételje meg. :)

Gondolkodj globálisan és tegyél lokálisan!

(#10227) cattus válasza Carasc0 (#10224) üzenetére


cattus
őstag

Minden egyes gomb kattintáskor újragenerálod a uniqueNumbers-et, a selectedNumbers-t viszont nem.

Tombolánál szerintem úgy kéne működnie, hogy egyszer legenerálod a random tömbödet az elején, majd utána csak kiveszel belőle számokat (és opcionálisan átrakod egy másikba).

Do the thing!

(#10229) Pala válasza Carasc0 (#10216) üzenetére


Pala
veterán

Parancsolj: [link]
Amint felhasznaltad az osszes szamot, reseteli magat es ujrakezdi, amugy meg akarmikor resetelheted manualisan is.

[ Szerkesztve ]

(#10230) cigam válasza #79484416 (#10228) üzenetére


cigam
félisten

Köszi!
Közben jobban megvizsgálva a kódot, egy csomó helyen nincs ; a parancs végén.
Nem lehet, hogy ezeknek a lezáró karaktereknek a hiánya okozza, hogy másképpen értelmezi, mint ahogy szeretném?

Freeware, és akciós programok egy helyen https://www.facebook.com/freewarenews

(#10232) A_ScHuLcZ


A_ScHuLcZ
addikt

Sziasztok,

Remélem jó topicba írok. :)
IT területen dolgozom, de nem kódolás vagy fejlesztés, ezek távol állnak tőlem. Egy szolgáltatást szeretnék beüzemelni, aminek a működéséhez webszervert kell használni, ehhez pedig a gyártótól le kell tölteni egy előre elkészített, testreszabható weboldalt. A problémám az, hogy már az alap weboldal sem működik tökéletesen, és a kipofozás előtt ezt szeretném megoldani.
Egy végtelenül egyszerű oldalról van szó, a html body-ban definiálva van egy form, ami tartalmaz egy hosszú szöveges részt, alatta pedig egy szöveges beviteli mezőt, és egy button-t. A szöveges mező email címet vár, és javascripttel vizsgálja, hogy tényleg emailt írt-e be a user. A gomb akkor használható, ha a beírt cím valóban egy email cím, és kattintásra a submitAction() metódust hívja meg. Ez a rész működik, ezzel nincs gond.
A probléma akkor jelentkezik, amikor a user mobil eszközről (pl. telefon vagy tablet) nyitja meg az oldalt, rábök a beviteli mezőre, felugrik az on-screen keyboard, és a cím beírását követően nem kikattint a mezőből és a weboldalon elhelyezett gombot használja, hanem a billentyűzeten látható Enter/Go/Next/akármilyen gombra kattint. Ekkor nem az elvárt működés tapasztalható, és ez gondolom arra vezethető vissza, hogy ez az eset nincs lekezelve az oldalon. Ezt szeretném megoldani, az lenne az elvárt működés, hogy a billentyűzeten megjelenő Enter/Go/Next billentyű használatakor ugyanaz a submitAction() metódus hívódjon meg, mint ami a button onclick eseményénél van beállítva.

A kódban a js részben 2 function van definiálva, submitAction() a gomb kattintáshoz és loadAction() a form betöltéséhez. Google alapján arra jutottam, hogy talán eseménykezelést kellene csinálnom a form-on létrehajtott submit eseményre, de lehet, hogy teljesen rossz úton járok.

Tudtok segíteni nekem, hogy hogyan tudnám ezt megoldani, vagy merre induljak el?

Köszönöm!

"I'd tell you a joke about UDP, but you probably wouldn't get it."

(#10233) sztanozs válasza A_ScHuLcZ (#10232) üzenetére


sztanozs
veterán

Latatlanban annyi otletem van, hogy van a mezokre valami esemenykezelo, aminek nem kellene lennie, vagy a form esemenykezeloje nincs jol beallitva.

JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...

(#10234) cigam válasza #79484416 (#10231) üzenetére


cigam
félisten

Köszi! Így jár az ember, ha "csapong" a nyelvek között...
Viszont sikerült a műtét, és a beteg is túlélte. Dobtam a systemd szervíz megoldását, és készítettem egy kis bash scriptet, ami elindítja a node.js programot felparaméterezve:
#/bin/bash
cd /home/magic/bmd_hyperdeck_time_remaining
npm start 192.168.1.211

Ezt pedig betettem az /etc/xdg/lxsession/LXDE-pi/autostart fájlba:

@/home/magic/bmdtimer.sh

Így (újra)indításkor szépen automatikusan elindul ez is.

Freeware, és akciós programok egy helyen https://www.facebook.com/freewarenews

(#10235) A_ScHuLcZ válasza sztanozs (#10233) üzenetére


A_ScHuLcZ
addikt

Ide felmásoltam az alap fájlt, a gyártótól ezt lehetett letölteni, ezt kezdtem el továbbfejleszteni. De az említett funkció már ebben sem működik, erre keresek megoldást.

Rá tudsz pislogni kérlek, hogy esetleg látsz-e benne olyan hibát, ami ezt a jelenséget okozhatja?

Köszönöm! :R

"I'd tell you a joke about UDP, but you probably wouldn't get it."

(#10236) nevemfel válasza A_ScHuLcZ (#10235) üzenetére


nevemfel
senior tag

Ránézve a kódra, én is ezt tenném, amit írtál:

Google alapján arra jutottam, hogy talán eseménykezelést kellene csinálnom a form-on létrehajtott submit eseményre, de lehet, hogy teljesen rossz úton járok.

A submit feliratú button type-ját buttonról submit-ra módosítanám, és levenném az onclick eseménykezelőt erről a gombról. A submitAction függvényt a form elem onsubmit eseményéből hívnám meg: <form method="post" onsubmit="return submitAction()">.

A submitAction functiont is módosítani kell. Ha mehet a submit, akkor a submitAction true értékkel térjen vissza, ha nem, akkor false-al, tehát ezt: document.forms[0].submit(); , erre kell cserélni: return true;

Na most ez az elmélet, kipróbálni nem próbáltam ki. Ami látszik a forráskódból, hogy ez egy nagyon régi script lehet, és én semmiféle validációt nem látok a submitAction-ben, így ez elvileg mindig végrehajtja a form submitet, bármi is van az email mezőben. Az sem világos, hogy a loadAction és a submitAction miért állítgatja a form action-jét, méghozzá ha jól látom, ugyanarra az értékre.

Forget your troubles, c'mon get happy

(#10237) Bzozoo válasza A_ScHuLcZ (#10232) üzenetére


Bzozoo
tag

Használj event key figyelést

(#10238) A_ScHuLcZ válasza nevemfel (#10236) üzenetére


A_ScHuLcZ
addikt

Köszönöm a javaslatot, bevált, a javasolt átalakítás után már jól működik. :R

"I'd tell you a joke about UDP, but you probably wouldn't get it."

Copyright © 2000-2024 PROHARDVER Informatikai Kft.