- Samsung Galaxy S24 Ultra - ha működik, ne változtass!
- Itt a Galaxy S26 széria: az Ultra fejlődött, a másik kettő alig
- Brutál külső akku, túlzásba vitt töltőfej - Anker újdonságok tesztje
- Poco F8 Ultra – forrónaci
- Fotók, videók mobillal
- Yettel topik
- Huawei Watch Fit 5 Pro - jó forma
- Samsung Galaxy S24 - nos, Exynos
- Google Pixel topik
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
-
Fórumok
Mobilarena - mobil fórumok
Okostelefonok Mobiltelefonok Okosórák Autó+mobil Üzlet és Szolgáltatások Mobilalkalmazások Tartozékok, egyebek Mobilarena blogokPROHARDVER! - hardver fórumok
Notebookok TV & Audió Digitális fényképezés Alaplapok, chipsetek, memóriák Processzorok, tuning Hűtés, házak, tápok, modding Videokártyák Monitorok Adattárolás Multimédia, életmód, 3D nyomtatás Nyomtatók, szkennerek Tabletek, E-bookok PC, mini PC, barebone, szerver Beviteli eszközök Egyéb hardverek PROHARDVER! BlogokIT café - infotech fórumok
Infotech Hálózat, szolgáltatók OS, alkalmazások SzoftverfejlesztésGAMEPOD - játék fórumok
PC játékok Konzol játékok MobiljátékokLOGOUT - lépj ki, lépj be!
LOGOUT reakciók Monologoszféra FototrendFÁRADT GŐZ - közösségi tér szinte bármiről
Tudomány, oktatás Sport, életmód, utazás, egészség Kultúra, művészet, média Gazdaság, jog Technika, hobbi, otthon Társadalom, közélet Egyéb Lokál PROHARDVER! interaktív
-
Frissítve: 2014-02-25 10:20 Téma összefoglaló
JavaScript != Java (A JavaScript nem összekeverendő a Javával, két különböző programozási nyelvről van szó!)
Új hozzászólás Aktív témák
-
nevemfel
senior tag
Szerintem nem kell beleerőszakolni sem a forEach-et, sem az arrow functiont semmibe. Ebben a formában a hasznosságuk erősen megkérdőjelezhető. Persze nem árt, ha gyakorolsz, hogy szokjad a szintaktikájukat.
-
nevemfel
senior tag
Először is köszönöm szépen a válaszokat.
Azért csinálom foreach-el, hogy tanuljak, pont ezek a hiányosságok miatt, amiket itt kérdezek

Sikerült megoldani foreach-el:
const array = Array.from(document.getElementsByTagName("details"));
array.forEach((element, index) => {
setTimeout(() => {
array.forEach((aa) => {aa.open = false;});
element.open = true;
}, index * 1000);
});Használhatod a foreachet is, teljesen mindegy. Én nem használom, legfeljebb tömbökön, mert a DOM nem tömböket ad vissza, hanem HTMLCollection-t (ennél nincs forEach, ezért először tömbbé kell konvertálni), vagy NodeList-et, aminél van forEach, de nincs meg a többi (map, reduce, filter).
Ha javascriptről és a DOM-ról van szó, és simán végig akarsz szaladni egy iterálható gyűjtemény elemein mindenféle nagy varázslat nélkül, akkor a leghülyebiztosabb a mezítlábas for ciklus.
-
nevemfel
senior tag
Hello
Azt szeretném, hogy nyissa ki a detail tag-et 1mp-re, zárja, be és nyissa meg a következőt, zárja be...stb})Array.from(document.getElementsByTagName("details")).forEach((element, index) => {
setTimeout(() => {
element.open = true;
}, index * 1000);
});
Ezzel egyesével kinyitom, de nem tudom hogy zárom be amit kinyitottamlet details = document.getElementsByTagName("details");
for (let i = 0; i < details.length; i++) {
let detail = details[i];
setTimeout(function() {
detail.open = true;
setTimeout(function() {
detail.open = false;
}, 1000);
}, i * 1000);
} -
nevemfel
senior tag
Szeretnék evvel a linkkel boldog újévet kívánni minden JavaScriptes-nek !
https://magyarnemzet.hu/belfold/2022/07/simonyi-karoly-szoftverfejleszto-urutazo-pecsre-latogatott
"Simonyi Károly szoftverfejlesztő, űrutazó Pécsre látogatott ! "
Ju-híí, már programozókat keresnek az űrállomásra is
Az apjától olvastam a Villamosságtant, az Elméleti Villamosságtant és A fizika kultúrtörténete könyvet. Nagy koponya volt.
-
nevemfel
senior tag
-
nevemfel
senior tag
Sziasztok. Google street view térképet használok egy weboldalon. Szeretném eltüntetni a térképről a nagyítási funkciót és az utcanév kijelzést, de velemiért nem működik a setZoomGesturesEnabled (false) és a setStreetNamesEnabled(false) funkció. A javascript hibára is megy miatta.
pano = new google.maps.StreetViewPanorama(document.getElementById('pano'));
streetViewService = new google.maps.StreetViewService();//pano.setStreetNamesEnabled(true); <--nem működik//pano.setZoomGesturesEnabled(true); <--nem működikpano.setPosition(newPosition,50);pano.setPov({heading:kesz.darab[0].irany,pitch:0});
Próbáld így:
var pano = new google.maps.StreetViewPanorama(document.getElementById('pano'), {
zoomControl: false,
showRoadLabels: false
}); -
nevemfel
senior tag
var tooltipTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]'))
var tooltipList = tooltipTriggerList.map(function(tooltipTriggerEl) {
return new bootstrap.Tooltip(tooltipTriggerEl, {
html: true
})
}); -
nevemfel
senior tag
Nem írja sehol, azt adja vissza.
pl ha consol log -al megnézem, az érték undefinied.szerintem a php kavar be. De nem tudom miért, vagy hogyan.
Másik kérdés:
ha form submit -nál szeretném figyelni, hogy üres e, és ha nem üres csak akkor jelenjen meg a submit gomb.
Nem nyomhatok a submit gombra, tehát az nem jó, hogy ha rányomok kiírja, hogy nem lehet üres.
Bármi módon üres, akkor.style.display: noneNem írja sehol, azt adja vissza.
pl ha consol log -al megnézem, az érték undefinied.Ha a böngészőkonzolon írod be a kódot, és ott futtatod, akkor a console.log megtévesztő lehet, mert ha beírod ezt:
console.log(1);
, és entert ütsz, a Firefox ezt írja ki:1
undefined
Az első sor a console.log kimenete, a második a visszatérési értéke.ha form submit -nál szeretném figyelni, hogy üres e, és ha nem üres csak akkor jelenjen meg a submit gomb.
Egyszerűbb így:
<input type="text" required />
Így kötelező lesz kitölteni a mezőt. -
nevemfel
senior tag
Először is köszönöm szépen a válaszokat.
Azt tudom, hogy querySelectorAll -t for ciklussal használjuk.
Úgy is tettem, és a for ciklusban természetesen: tömb[index].innerHTML
De ez undefinied.
Amennyi elem van a tömbben, annyi undefinied -et ad vissza.
És innerText-el is.Ha tömb[index] -et kérek ki, és console log -al kiíratom akkor ott van minden elem a tömbben, és ha megnézem ott van az érték innerHTML -ben és innerText -ben is.
hiperFizikus: ézt nem értem
let tomb = document.querySelectorAll(".osztalyKikeres");
for (let index = 0; index < tomb.length; index++) {
tomb[index].innerHTML;//undefinied -et ad vissza
tomb[index].innerText;//undefinied -et ad vissza
console.log(tomb[index]);//ebben ott van az érték innerHTML és innerText -nél is
}Ez a kód első ránézésre jó, az innerText és innerHTML-ben is ott kell legyen a tartalom. Hova írja neked, hogy undefined?
-
nevemfel
senior tag
Hello
Sajnos nem tudok példával szolgálni, mert nagyon hosszú a kód.- JS pakolja be egy táblázatba az értékeket /number/.
Az értékek benne vannak.
Majd form input/number -el adok egy számot amivel meg kellene szoroznom a táblázatban levő értéket/ Van egy class adva ezeknek a td elemeknek
querySelectorAll -al kikérem a class-t, kapok egy tömböt.
Consol log-al megnézve, ott a tömb, tömbböt lenyitva innerHTML és InnerText alatt ott az érték.
Egy dologgal van baj:
Ha a tömb -höz hozzá írom, hogy ".innerHTML" vagy ".innerText" az érték : undefinied.Miért?

A querySelectorAll egy nodeListtel tér vissza, amin egy ciklussal kell végigiterálni, egyenként megcímezve a node-okat, azoknak van innerHTML és innerText propertyje.
Ez abban az esetben is érvényes, ha a nodeList egyetlen elemet tartalmaz.
-
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.
-
nevemfel
senior tag
Nem, hanem: ChatGPT !
User
milyen keretrendszerek vannakChatGPT
Számos webes keretrendszer létezik a fejlesztőknek, amelyek segítségével könnyebben és hatékonyabban készíthetnek webalkalmazásokat. Néhány népszerű keretrendszer közé tartozik:Bootstrap: Egy mobilbarát, reszponzív CSS és JavaScript keretrendszer, amelyet a Twitter fejlesztett ki.
React: Egy JavaScript könyvtár, amelyet a Facebook fejlesztett ki, és amely segíti a felhasználói felületek (UI) készítését.
Angular: Egy TypeScript-alapú keretrendszer a Google-től, amelyet a felhasználói felületek és egyéb webalkalmazások fejlesztéséhez használnak.
Vue.js: Egy könnyűsúlyú JavaScript keretrendszer, amelyet főként felhasználói felületek létrehozására terveztek.
Django: Egy Python alapú webkeretrendszer, amely a gyors fejlesztést és tiszta kódolást támogatja.
Ruby on Rails: Egy Ruby alapú webkeretrendszer, amely a konvenciók felett a konfiguráció elvét követi, és segíti a gyors fejlesztést.
Express.js: Egy minimális, rugalmas és kifinomult Node.js keretrendszer, amely a szerveroldali alkalmazások gyors fejlesztését teszi lehetővé.
Laravel: Egy PHP alapú webkeretrendszer, amelyet az elegancia és a kifinomultság jellemzi.
Spring Boot: Egy Java alapú keretrendszer, amelyet a Spring keretrendszerre építettek fel, és a gyors fejlesztésre összpontosít.
Ezek csak néhány példa, és a választás attól függ, hogy milyen nyelvet és technológiát preferálsz, valamint milyen típusú alkalmazást fejlesztesz. A keretrendszerek gyorsítják a fejlesztési folyamatot, mivel előre elkészített kódokat és struktúrákat biztosítanak.

Jó látni, hogy a ChatGPT nem fogja elvenni a munkámat.
-
nevemfel
senior tag
Tudod az a baj a magad fajta próbálkozókkal, hogy ha nem kap elsőre kész megoldást, már degradál mindenkit. Itt ebben a csoportban szerintem az aktív résztvevők 95%-a képes nulláról megcsinálni amit akarsz. Csak nem érdekünk.
Hogy miért? Mert arra törekszünk, hogy rávezessük a megoldásra azokat, akik szeretnék megcsinálni a maguk programjait, de elakadtak.
Nem azért vagyunk itt, hogy telibe mindenkinek megcsináljunk mindent amit benyögnek ide.Ezt kéne megérteni!
Csak nem érdekünk.
Nem csak arról van szó, hogy nem érdekem.
Hétköznap dolgozom, csak alkalmanként van időm bekukkantani a topikba. Ha van esetleg valami technikai dolog, amiben kapásból segíteni tudok, akkor szívesen segítek, de sem időm, sem energiám nincs arra, hogy órákat szenteljek egy adott témának, hacsak nem pont olyan probléma, amivel jelenleg épp én is foglalkozom.
Másrészt ha már a konkrét példát vesszük, a galéria szkriptet, biztos nem állnék neki sajátot írni, hacsak nem pont az a célom, hogy sajátot akarjak készíteni, vagy ezen keresztül gyakorolni a javascript programozást. Egyrészt mert gigatonnányi galériakezelő szkript van készen, csak meg kell keresni, másrészt ha igényeset akarsz csinálni, ennek is megvannak a maga buktatói, ami miatt elég sok idő nulláról megcsinálni korrekten (különféle médiaformátumok kezelése, touch eventek mobileszközökön, túl nagy kép átméretezése a viewporthoz alkalmazkodva stb, stb...)
-
nevemfel
senior tag
Sziasztok!
Nem vagyok javascripthez értő...
Egy egyszerűnek tűnő képnézegető funkciót szeretnék egy HTML + CSS weboldalra tenni. Kezdésnek találtam egy stílusos 'alapot' ami egy HTML + CSS és szépen megjeleníti a képeket kisebb méretben, galériaszerűen, több oszlopban és sorban.Az a funkció kellene ehhez, hogy amikor egy képre külön rákattintunk akkor az nagyobb méretben megjelenjen, valamint kerüljön rá : következő - előző - vissza gomb, hogy lapozgatni lehessen a képek között, illetve a vissza gombra térjen vissza a galériához (itt gondolom lehetne egy sima fotogaleria.html oldal hívás is)
Nekiálltam 'megoldani' mindenféle verzióban chatgpt-vel, kb 1 órát eltökölve - javascript kódot íratva (úgy is hogy 'natúrban' írjon csak egy ilyen kódot ne használja fel a meglévő html + css-t) ám sehogy sem sikerült megoldani..
Odáig jut el a dolog hogy rákattintásra megjelenik nagyméretben a kép és ennyi.Szóval most itt kérnék útbaigazítást hogyan tudnám megvalósítani ezt?
Nem egyszerűbb innen, vagy máshonnan kiválogatni valami kész galéria-scriptet?
-
nevemfel
senior tag
Nálam ez a kód működik:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<a href="https://dereferer.me/?https://www.imdb.com/title/tt1448754/">Link 1</a>
<script>
(function () {
'use strict';
const REPLACEMENTS = {
'dereferer.link': {
pattern: /^https?:\/\/(?:www\.)?dereferer\.link\/\?(.+:\/\/.+)/,
noreferrer: true,
},
'dereferer.me': {
pattern: /^https?:\/\/(?:www\.)?dereferer\.me\/\?(.+:\/\/.+)/,
noreferrer: true,
},
};
for (const el of document.querySelectorAll('a')) {
for (const [name, repl] of Object.entries(REPLACEMENTS)) {
const match = repl.pattern.exec(el.href);
if (match) {
const origUrl = match[1];
console.debug(`Dereferer Remover (${name}): replacing ${el.href} -> ${origUrl}`);
el.href = origUrl;
if (repl.noreferrer) {
el.rel = 'noreferrer';
}
}
}
}
}());
</script>
</body>
</html> -
nevemfel
senior tag
-
nevemfel
senior tag
Köszönöm, eddig sosem hallottam erről.
Már többen belefutottak ebbe a problémába. Nagyon nem magától értetődő, hogy nem a
<button type="button">az alap viselkedés, hanem a<button type="submit"> -
nevemfel
senior tag
'reggelt! Miért van az, hogy ha van egy bézik html formom, a végén két buttonnal, amikhez kódot rendelnék, de ha bármelyik buttonra kattintás után az alert feldobja a popupot és rábökök az OK-ra, elmennek az adatok a szerverre, mintha a submitra kattintottam volna?
<form action="/ramsey/data" method="post" novalidate><input type="field1" id="field1" name="field1"><input type="field2" id="field2" name="field2"><div id="btnWrap"><input type="submit"><input type="reset"><button onclick="alert(1);">Feel good</button><button onclick="alert(2);">Fill wrong</button></div></form>Az oldalon nincs semmilyen más js kód (programkönyvtár, eseményfigyelő vagy akármi). A DevTools szerint is csak egy-egy event van buttonokhoz rendelve, pl.
function onclick(event){alert(1);}Ez hiba vagy tulajdonság? Hogy lehet elkerülni?
Mert a <button> default type-ja "submit", és nem adtál meg type attribútumot.
-
nevemfel
senior tag
Sziasztok
Azt szeretném elérni, hogy a hiba nevű input mezőben nyomott enter hatására a keres nevű gomb aktiválódjon.
Szerintem jó a script amit használok, de valamiért nem a keres nevú gomb aktiválódik, hanem az első, amit talál. (jelen esetben az uj_hiba). Persze, ha az uj_hiba gombot a keres után rakom, akkor jó.ITT a forrásom
<!DOCTYPE html>
<html lang="hu">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<title>Title</title>
</head>
<body>
<form class="row" id="kereses" name="kereses" method="post">
<div class="col-md-2">
<button type="button" class="btn btn-danger" id="uj_hiba" onclick="window.open('uj_hiba.php','_blank')"> Új Hibanapló</button>
</div>
<div class="col-md-2">
<input type="text" class="form-control" id="hiba" name="hiba" placeholder="Hibajelenség">
</div>
<div class="col-md-2">
<input type="text" class="form-control" id="bejelent_nev" name="bejelent_nev" placeholder="Bejelentő neve">
</div>
<div class="col-md-2">
<button type="submit" class="btn btn-primary" name="keres" id="keres">Keresés</button>
</div>
</form>
</body>
</html><button type="button"> -t kell beállítani, ha egy gombot sima gombként akarsz használni, nem submit elemként.
-
nevemfel
senior tag
Sziasztok! Egy nagyon kis primitív dologban szeretnék segítséget kérni.
Csináltam egy digitális órát, ahol az idő múlása szerint jelenik meg nappal egy nap ikon, éjjel egy hold ikon.
Ez működik is.Pluszban hozzá akartam adni, hogy a háttérkép is változzon. 4 db kép van, éjjel kettő csillagos fotó váltakozik 30 másodpercenként, nappal szintén kettő 30 mp-enként.
A háttérképeket a hold és nap ikonhoz kötöttem, hogy a nappal-éjjel váltakozás eszerint menjen.
A 30 másodpercenkénti váltakozás működik is, viszont a nappal-éjjel dolog már nem. Mindig az a két kép váltja egymást, amik itt sorrendben az utolsók, tehát jelenleg az image3 és image4 váltakoznak, de ha megcserélem és berakom őket felülre, akkor az 1 és 2 lesznek csak.if(sun.style.display = "block" && sec < 30 ){
document.body.style.backgroundImage = "url(image1.jpg')"}if(sun.style.display = "block" && sec > 30 ){
document.body.style.backgroundImage = "url(image2.jpg')"}if(moon.style.display = "block" && sec < 30){
document.body.style.backgroundImage = "url(image3.jpg')"}if(moon.style.display = "block" && sec > 30){
document.body.style.backgroundImage = "url(image4.jpg')"}A nap-hold ikonok megjelenítése (ez stimmel) :
if(hrs >= 7 && hrs < 19){
moon.style.display ="none";
sun.style.display = "block"}if(hrs >= 19 || hrs < 7){
sun.style.display ="none";
moon.style.display = "block"; }if(sun.style.display = "block" && sec < 30 ){helyett
if(sun.style.display === "block" && sec < 30 ){és így tovább.
-
nevemfel
senior tag
-
nevemfel
senior tag
-
nevemfel
senior tag
-
nevemfel
senior tag
Egy kicsit körbejártam ezt, és elismerem, igazad van.


Ezek szerint JS-ben elméletileg NINCS is tömb, a tömb is objektum, DE az objektumok a gyakorlatban tömb ÉS objektum SZINTAXISSAL is kezelhetők. Viszont akkor félrevezető, hogy tömb szintaxissal létrehozott objektumokat tömbnek "hazudja" a Console ...Megerősítésképpen:
Tanulságos ..., nyilván van gyakorlati előnye, de szigorúan nézve számomra ez inkább zavaró. Az ember azt hiszi, hogy tömbje van, pedig nem is ...I. Objektumok.
Javascriptben egy objektum mezőit kétféle szintaxissal lehet elérni.
1. dot notation:
obj.property2. bracket notation:
obj["property"]A bracket notation akkor szükséges, ha olyan propertyt akarsz kezelni, ami
1. változóban van eltárolva,
2. javascriptben nem minősül megengedett azonosítónak (identifier). Például számjeggyel kezdődik, mint tömbelemek esetében, vagy space-t tartalmaz.Erre találták ki a bracket notationt, ami stringet vár, nem azonosítót. Ha nem stringet kap, akkor a kapott értéket stringgé konvertálja.
II. Tömbök.
Javascriptben létezik egy ún. array literal:
var cars = ["BMW", "Toyota", "Mazda"];
Az ezzel a szintaxissal létrehozott érték egy olyan objektum, aminek a prototype linkje a beépített Array objektumra mutat.
Ebből örököl egy csomó tömbspecifikus metódust (push, pop, slice, splice stb...) és a length propertyt. Tehát a tömb is objektum, de speciális objektum.III. typeof
A typeof egy legacy nyelvelem. Minden objektumra, függetlenül, hogy miből származik, a type operátor "object"-et ad vissza, kivéve function esetében. Tömb esetén tehát szintén "object"-et fog visszaadni.
Ha azt akarod tesztelni, hogy egy érték tömb vagy sem:
1. cars instaceof Array true-t ad vissza, ezzel jelezve, hogy a cars proto linkje az Array-re mutat (ami egyébként az Objectre linkel tovább). Cross framek (iframe) esetében az instanceof bugosan viselkedik, mindig false-t ad vissza.
2. Array.isArray(cars); szintén true-val tér vissza tömb esetén. Ez cross-frame kompatibilis. -
nevemfel
senior tag
Ha tömb lenne, így kellene rá hivatkozni: backpack['pocketnum']
Ez javascript esetében nem így van. Objektum propertykre is lehet hivatkozni ezzel a szintaxissal, ezt nevezik "bracket notation"-nak. Egyébként javascriptben a tömb is egy objektum. És még valami: javascriptben nincs olyan, hogy "asszociatív tömb". Az asszociatív tömb (tömb, ahol a tömbelem kulcsa string) az az objektum.
-
nevemfel
senior tag
Szia!
Hagy kérdezzek valamit a console.log-al kapcsolatban!
Én most kezdem a JS-t tanulni. Mindenhol ezt a console.log-ot használják debuggoláshoz, de nekem valamiért nem működik rendesen.
Van egy kb üres HTML, ami meghívja a JS-t. Abban van egy db tömb, aminek egyik elemét akarnám kiiratni console.log-al, de azt írja, hogy "undefined". Látja az objektumot, mert ha csak az objektum nevet írom be a konzolba, akkor mutatja, hogy mik vannak benne. Viszont így utasításként se a konzolban, se a JS-ből nem csinál semmit. firefoxban futtatom. Hot reloadot felraktam, meg leszedtem egy Node.js-t a feladatokhoz, ami némi hibaüzenetekkel, de felment (windózra).
-
nevemfel
senior tag
Udv, lenne egy js+html kerdesem. C++ fejlesztokent (szoval a js-hez lama vagyok) keszitek egy web konfiguracios weblapot egy specialis ARM procis vezerlohoz.
Alap dolgok mukodnek, most kitalaltuk hogy bonyolultabb legyen, kulso js, css fajlokat hasznaljunk. PC-re megcsinaltam a prototipust, aztan jott a felismeres (facepalm): nincs fajlrendszerunk az adott cuccon. Flash memoria van, valszeg specialis utasitasokkal lehet fajlmuveleteket vegezni. Nagy valoszinuseggel az index.html-ben levo fajl hivatkozasok nem fognak mukodni, igy nem lehet betolteni a kulso js, css faljokat.
Van valami lehetoseg pl 1 nagy html fajlba legeneralni az osszes fuggoseget? Ha az nem megy akkor ujbol meg kell csinalnom szigoruan fuggosegek nelkul.
nincs fajlrendszerunk az adott cuccon.
Na de fájlrendszer nélkül hogyan generálod le, és juttatod el ezt a html oldalt a kliensnek? Kell, hogy legyen valami http kiszolgáló, ami, feltételezem, fájlból olvas, és annak a tartalmát küldi a böngészőnek.
Van valami lehetoseg pl 1 nagy html fajlba legeneralni az osszes fuggoseget? Ha az nem megy akkor ujbol meg kell csinalnom szigoruan fuggosegek nelkul.

Természetesen van. <style></style>-ba beágyazod a stíluslapokat, <script></script> tagok közé a scripteket.
Léteznek erre ún. "inliner" toolok(CSS inliner, JS inliner), amik automatikusan legenerálják neked a kódot, de egyiket sem ismerem.
-
nevemfel
senior tag
Nézd, én tényleg nem szeretnék veszekedést ebben a témában, de azért lehetnél kicsit alaposabb, amikor egy ilyen problémát akarsz prezentálni a topikban a többiek felé.
Elhiszem, hogy a javascript használata során sok furcsasággal lehet találkozni, de ennek a nyelvnek is ugyanúgy megvan a belső logikája, hogy hogyan működik a fordító-, és a futtatókörnyezet. Ami egyébként számos ponton eltér más nyelvekétől, és ami sok félreértést szül.
-
nevemfel
senior tag
Csak reprodukálni nem sikerült a hibát a példával. Így, legalábbis számomra, nem érthető, hogy mi is a probléma, vagy hogy mi köze ennek a Javascript engine egyszálúságához.
-
nevemfel
senior tag
Csak úgy kutyafuttában ránéztem, nem ez-e a bajod vele:
let value = getValue();function getValue() {return true;}function myFunction(x) {//}..myFunction(value);..
Vagyis csak azt hívhatod meg ami előtte már deklarálva van !Vagyis csak azt hívhatod meg ami előtte már deklarálva van !
Kivéve a var és function deklarációkat.
-
nevemfel
senior tag
Üdvözlet!
Volt nemrég itt a fórumon téma, hogy a JavaScript mindössze 1 szálon fut.
Néha ezt a tényt be is bizonyítja. Mégis érdekes, hogy ha van egy ilyen kódom:let value = getValue();
function getValue() {
return true;
}
myFunction(value);
.
.
.
.
function myFunction(x) {
//
}...akkor a console hibát dob vissza, miszerint: '
x is not definied'.Kérdem én: Ha 1 szálon fut, akkor követnie kellene a műveleti sorrendet (fentről lefelé). Ilyen esetben miért nem történik meg? Nyílván
getValue();nem csak egy egysoros kód, hanem egy feltételrendszer. Mégis a program az előtt futtatnámyFunction(x);-et, mielőtt visszakapnávalueagetValue();értékét.
Ez az én olvasatomban azt jelentené, hogy párhuzamosan fut két function, és ha nincs visszatérő érték az egyikből addig, amíg a másik el nem jut arra a pontra, hogy használná, akkor hiba lesz az eredmény...
Ha a console.log-ot a myFunction-ba rakod, akkor true-t ír ki ezen példa alapján.
-
nevemfel
senior tag
Először is nagyon szépen köszönöm a segítséget mindenkinek
Az globális változó. Bent is érvényes. Gondolom azt akartad írni, hogy az értéke nem érvényes bent.
Igaz, el bambáztam
Zedz: az nagyon rossz példa.
Html gombot onclick eventtel sokkal jobb kikérni
Illetve a js borzasztó xarul kezeli a dátumot.
Ahol lehet kerülni kell, mint a tüzes vasat.Bzozoo : majd utána nézek, hogy az hogy van.
Html gombot onclick eventtel sokkal jobb kikérni
Most épp úgy teszek, mintha ezt a mondatot nem is láttam volna. Mindenkinek jobb lesz így.

Egyébként van ebben valami, de hogy "sokkal" jobb lenne, azzal vitatkoznék. Illetve attól függ, mit értesz az alatt, hogy "sokkal jobb"...
-
nevemfel
senior tag
A fuction belsejében nem érvényes a function külsőnél létrehozott változó.
Javascriptben minden változó érvényes a belső függvényekben, hacsak nem hozol létre a függvényen belül egy ugyanolyan nevű azonosítót, ami ilyen esetekben elfedi a külső objektumot.
-
nevemfel
senior tag
-
nevemfel
senior tag
Rég jártam erre, de látom, hogy a topik színvonala határozottan tovább romlott. Ezt a gigantikus foshalmot, ami itt van, elképesztő...
-
nevemfel
senior tag
Van egy részproblémám:
EzMath.sin(5)megy, de ezMath.sin(5).Math.sin(5).Math.sin(5)
nem megy, nyilván mert nem lehet egymás utánra tenni .Ezt az
Math.sin(5).Math.sin(5).Math.sin(5)-et tesztelésre használnám, és a JS referenciában keresgélésre nem találok olyat, ami JavaScripten menne és számok egymásutánját adnák a háttérben:Math.sin(5).Math.sin(5).Math.sin(5) = 15.45.65Hogy le tudjam tesztelni a és programomat, ahhoz adjatok meg nekem a
Math.sin(5).Math.sin(5).Math.sin(5)
helyébe olyasmit, ami háttérben formálisan helyesen összekapcsolódik és egyszerű értékeken alapul {vagyis nem strukturált értékes} a háttere ♥
Ugyanis e részprogramom jónak tűnik, napirendre térhetnék felette, de mivel nektek lesz, ezért járuljatok evvel hozzá a teszteléséhez !...de mivel nektek lesz, ezért járuljatok evvel hozzá a teszteléséhez !
Önzetlenséged lehengerlő!
-
nevemfel
senior tag
-
nevemfel
senior tag
Értem, hogy a PHP a szerver oldalon legenerál kódot ami belekerül és a kliens oldal megkapja. DE ! Én arra gondoltam, hogy a PHP oldal is fut közben (vagy újraéled) mert amikor egy form kitöltésre kerül és lenyomják a submit gombot, akkor kitöltésre kerül a POST tömb és lám, a PHP oldalon egy egyszerű isset máris észreveszi. Tehát akkor csak fut még az a PHP amikor a kliens oldal már rég kint van, akkor is.
Ezért gondoltam, hogy egy egyszerű üzenettel (pl. POST kitöltéssel) lehetne szólni a PHP oldalnak, hogy tegyen ezt vagy azt.((Ha elborul az agyam, csinálok egy észrevehetetlen formot valahol a sarokban és valahogy ráveszem JS-el hogy váltsa ki a submit eseményt és máris tudok a szerveroldalnak üzenni))
((Ha elborul az agyam, csinálok egy észrevehetetlen formot valahol a sarokban és valahogy ráveszem JS-el hogy váltsa ki a submit eseményt és máris tudok a szerveroldalnak üzenni))
Nem egészen világos, mihez kell neked a rejtett form. A fetch API, az Ajax pont erre való, hogy üzenj a szerveroldalnak, az oldal újratöltése nélkül.
-
nevemfel
senior tag
Igen értem a logikáját és valóban egy fájlban van a js és a php.
Akkor jól gondoltam, hogy kéréssel tudom megoldani.
Valaki egy csöpp kódot tudna írni erre ?!Példakód:
index.html
<!DOCTYPE html>
<html lang="hu">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" href="data:,">
<title>Ajax példa</title>
</head>
<body>
<script>
(function() {
var ajaxFunc = function() {
fetch("http://localhost/endpoint.php")
.then(function(response) {
return response.text();
})
.then(function(body) {
console.log(body);
})
.catch(function(error) {
console.error(error);
});
setTimeout(ajaxFunc, 2000);
};
setTimeout(ajaxFunc, 2000);
}());
</script>
</body>
</html>endpoint.php
<?php
echo "helló"; -
nevemfel
senior tag
A megválaszolt hozzászólás már nem elérhető.A w3schools állítása sem hibás. A block scope-ról írnak, ami javascriptben a let és const megérkezéséig nem létezett.
-
nevemfel
senior tag
A megválaszolt hozzászólás már nem elérhető.var esetében van function scope:
The var statement declares a function-scoped or globally-scoped variable, optionally initializing it to a value.
-
nevemfel
senior tag
A megválaszolt hozzászólás már nem elérhető.Kicsit még vissza az előzőekhez, a setTimeout dokumentáltan async függvény.
Aszinkron viselkedésű, de közvetlenül nem tudod az await kulcsszóval használni, mert nem egy promise a visszatérési értéke.
-
nevemfel
senior tag
A megválaszolt hozzászólás már nem elérhető. -
nevemfel
senior tag
A megválaszolt hozzászólás már nem elérhető.Hát nem is tudom, hirtelen hol is kezdjem ... a javascript aszinkron kódokat, eseménykezelőket mennyire ismered? Függvény, mint függvényparaméter, mi az, mire jó, hogyan működik, ezek a fogalmak megvannak?
-
nevemfel
senior tag
Én meg arra utaltam, hogy egyidőben nem tudsz semmit sem futtatni párhuzamosan egy böngészőtabon. Sem asyncet, sem promiset, sem intervalt, sem semmi eventet.
A látszólagossággal meg szerintem itt nagyjából mindenki tisztában van, hogy "úgy néz ki", mintha egyidőben futnának dolgok. Oké, na és? Pont arról van szó, hogy a látszat ellenére nem párhuzamosan futnak. Te meg kötöd az ebet a karóhoz, hogy de "egyidőben" futnak. Akkó jóvan akkó, legyél vele nagyon boldog, igazad van, télleg "egyidőben" futnak. Fantasztikus felfedezés.
-
nevemfel
senior tag
"...Ráadásul a javascript csak egy szálon tud futni..."
Ezt én csak részben tekinteném igaznak. Elég csak az
interval-okra gondolni. Annyit teszel be, amennyit akarsz, olyan időzítéssel, amilyennel akarod.Persze nem állítom, hogy ilyen esetekben több szálon fut, csak érdekességként említem.
Az interval, timeout ugyanazt az event-loopot használja. Egyetlen szálon fut a teljes javascript kód. Ha pl. épp számol egy kódrész, addig amíg be nem fejezi a számolást, addig sem interval, sem timeout, sem egyéb UI event nem kerül végrehajtásra.
Próbáld ki:
setTimeout(function() {
console.log("lefutna 100 ms múlva");
}, 100);
for (var war = 0; war < 10000000 ; war++) {
war;
};
console.log("lefutott a ciklus"); -
nevemfel
senior tag
Jó kérdés. Mivel a localstorage egy faék key-value tároló, ez őrült sérült nem tud lenni.
Ráadásul a javascript csak egy szálon tud futni, szóval ne keverjük össze az aszinkron futást a párhuzamos futással.
Ergo szerintem olyan versenyhelyzet elő tud fordulni, hogy több böngészőfül felülírja egymás adatát, de ettől még nem lesz sérült az adatbázisod.
Azaz egyedül a felülírásra kellhet odafigyelned, már ha erre is tényleg oda kell figyelned, vagy pedig elfogadjuk természetesnek, hogy ha A kulcsot az egyik fül B-vel, a másik meg C-vel akarja feltölteni, akkor az fog nyerni, amelyik utoljára módosította.Azaz egyedül a felülírásra kellhet odafigyelned, már ha erre is tényleg oda kell figyelned, vagy pedig elfogadjuk természetesnek, hogy ha A kulcsot az egyik fül B-vel, a másik meg C-vel akarja feltölteni, akkor az fog nyerni, amelyik utoljára módosította.
Ugye a javascript kód egy oldalon egyetlen szálon fut, tehát egyetlen oldalon ilyen nem történhet. Az is feltételezhető, hogy ha több tabon fut ugyanazon a domainen található különféle script, az szintén egy szálon fog futni, dacára annak, hogy külön tabok futhatnak külön szálon. Tehát ebben az esetben egy localStorage.setItem(kulcs, walamiMuvelet(localStorage.getItem(kulcs))) atomi műveletnek tekinthető.
Nem vagyok expert abban, hogy _pontosan_ hogyan is működnek a modern böngészők javascript futtatókörnyezetei, de nagyon remélem, hogy azonos domaint egy szálon kezelnek. Mert ha nem így van, akkor a Jóisten irgalmazzon nekünk, meg a scriptjeinknek, hogy mi lesz a végeredmény, ugyanis ez teljesen szembemegy a böngészőben futó javascript alapelveivel.

-
nevemfel
senior tag
A megválaszolt hozzászólás már nem elérhető.Kell ezekre a dolgokra ügyelni vagy ezt a böngészők lerendezik a háttérben?
Én ugyan nem nagyon használtam localstorage-t, de nem tudom elképzelni, hogy a böngészők ne tudnák kezelni rendesen az adatok konkurens kezelését.
-
nevemfel
senior tag
Panaszkodtatok a "nevezzék tanomra", hogy nem beszédes azonosítók .

Nem kötözködni akarok, de ha e kettő közt veszem pl. rövidítéseket, akkor ahhoz hogyan viszonyulnátok ?
pl.; nemzeti_kozponti_bizotsag = 15 ;->; nkb3 = 42 ;
A rövidítések haszontalanok (sőt, egyéni véleményem: kifejezetten károsak).
A fejlesztő jellemzően az ideje 10%-át tölti azzal, hogy kódot gépel, 90%-át meg azzal, hogy "Mi az Úristen folyik itt? Nem értem.". A beszédes változónevek használata rengeteg sok elpazarolt időt takaríthat meg.
Ha valaki a fájlméret miatt szeretné lerövidíteni a programjában használt azonosítók (változók, függvények) neveit, arra ott vannak a különféle javascript minify-, illetve obfuscator eszközök.
-
nevemfel
senior tag
-
nevemfel
senior tag
Te ezt írtad:
const allArray = ['alpha', 'beta', 'delta'];Én ezt:
const allArray = [alpha, beta, delta];A kettő egyáltalán nem ugyanaz.
-
nevemfel
senior tag
Üdvözletem!
Ismét kétkedéssel írok, mert valahogy megvan az az érzésem, nem lesz megoldása a talánynak, de azért hátha...
Szóval. Durván ráfüggtem az
array-ok használatára, mint kliens oldali, nem mentendő adatok tárolására szolgáló eszközre.
Aztán ezek sokan lettek
Szeretném némiképpen megkönnyíteni a velük való munkát, valahogyan az alábbiak szerint:
const
alpha = [1, 2, 3, 4, 5, 6],
beta = [7, 8, 9, 0 ,1, 2],
delta = ["mikrofon", "próba"];const allArray = ['alpha', 'beta', 'delta'];És az elképzelés az volna, hogy egy könnyed lekérdezéssel máris a megfelelő adatoknál talájam magam:
let data = allArray[1][2];
// console: return = 9Azért 9, mert az elmélet alapján data = lesz allArray első értékén lévő (beta) második (9) értékével.
Tudom, ez a valóságban nem működik, mert ha így próbálom meg:
let data = allArray[1];
let anotherData = data[2];...akkor az eredmény bizony "t" lesz, mert a "data" szó második helyi értékén a "t" betű áll.
Röveden és tömören: Amit itt leírtam, az egy vágyálom, és ebben a formában nem működik. Viszont érdekelne, hogy van-e esetleg egy olyan út, ahol az itt prezentált végcél megtalálható?
Előre is köszönöm az eszmecseréket!
const alpha = [1, 2, 3, 4, 5, 6], beta = [7, 8, 9, 0 ,1, 2], delta = ["mikrofon", "próba"];
const allArray = [alpha, beta, delta];
console.log(allArray[1][2]); -
nevemfel
senior tag
Sziasztok! Ebben tudnátok nekem segíteni?
Egy Radio Button típusú választási opció van ebben a kódban mint látható. Azt az kellene még a scripthez, hogy ha a Radio3 ID-jű input van kiválasztva a látogató által, akkor jelenjen meg az alatt a sor alatt egy ilyen szöveg, hogy "Your Gmail address", és alatta egy <div>-et illesszen be, amibe majd űrlap sávot csinálok, azzal majd kiegészítem a script-et is később.Ha pedig a Radio1-2 van kiválasztva, akkor tűnjön el.
<div id="497489" align="left" style="width: 100%; overflow-y: hidden;" class="wcustomhtml"><div class="gombkeret"><input id="radio1" type="radio" name="radio" data-href="https://www.paypal.com/cgi-bin/webscr?" checked=""><label for="radio1" class="radio"><strong> Standard Mail:<span class="shippingfee"> £5</span></strong> </label><input id="radio2" type="radio" name="radio" data-href="https://www.paypal.com/cgi-bin/webscr"><label for="radio2" class="radio"> <strong> Registered Mail: <span class="shippingfee"> £9</span></strong> </label><input id="radio3" type="radio" name="radio" data-href="https://www.paypal.com/cgi-bin/webscr"> <label for="radio3" class="radio"><strong> Download Only (.ISO format 4.3GB, playable on Computers, Tablets and Phones with free <a href="https://www.videolan.org">VLC Player</a>)</strong></label></div><div id="down_icon2"><a href="https://www.paypal.com/cgi-bin/webscr"><img src="files/theme/paypal.png"></a></div><div id="paypalsecure"><img src="files/theme/secure2.png"></div><script>var sliders = document.getElementsByName('radio');var linkWrapper = document.getElementById('down_icon2');for (var i in sliders){if(sliders[i].addEventListener){sliders[i].addEventListener('click', function(){linkWrapper.childNodes[0].setAttribute('href', this.getAttribute('data-href'));});}}</script></div>Kicsit átalakítottam a scriptet is:
<div id="497489" style="width: 100%; overflow-y: hidden;" class="wcustomhtml">
<div class="gombkeret">
<input id="radio1" type="radio" name="radio" data-href="https://www.paypal.com/cgi-bin/webscr?test=1" checked=""><label for="radio1" class="radio"><strong> Standard Mail:<span class="shippingfee"> £5</span></strong> </label>
<input id="radio2" type="radio" name="radio" data-href="https://www.paypal.com/cgi-bin/webscr?test=2"><label for="radio2" class="radio"> <strong> Registered Mail: <span class="shippingfee"> £9</span></strong> </label>
<input id="radio3" type="radio" name="radio" data-href="https://www.paypal.com/cgi-bin/webscr?test=3"> <label for="radio3" class="radio"><strong> Download Only (.ISO format 4.3GB, playable on Computers, Tablets and Phones with free <a href="https://www.videolan.org">VLC Player</a>)</strong></label>
<div id="address_block"><label for="gmail_address">Your Gmail address:</label> <input type="text" id="gmail_address" name="gmail_address"></div>
</div>
<div id="down_icon2"><a href="https://www.paypal.com/cgi-bin/webscr"><img src="files/theme/paypal.png"></a></div>
<div id="paypalsecure"><img src="files/theme/secure2.png"></div>
<script>
var sliders = document.querySelectorAll(".gombkeret input[type='radio']");
var link = document.querySelector("#down_icon2 a");
var i;
for (i = 0; i < sliders.length; i++) {
sliders[i].addEventListener("change", function() {
var address_block = document.querySelector("#address_block");
link.setAttribute("href", this.getAttribute("data-href"));
if (this.checked && this.getAttribute("id") === "radio3") {
address_block.style.display = "block";
} else {
address_block.style.display = "none";
}
});
}
</script>
</div> -
nevemfel
senior tag
> Te a breaket a {}-os utasításblokkba tetted, ami ebben az esetben nem a case esetből ugrik ki, hanem a {}-al jelölt utasításblokkból. Tehát ráfut a következő case esetre.
Erre gyanakodtam en is, de gyakorlatilag nem igy mukodik. Csak egy kulon scope-ot kap.
Viszont egy probat mindenkepp meger.föccer: ha kozvetlen a break ele teszel egy logot, azt meg kiirja? (nincs-e esetleg valami elnyelt hiba)
Erre gyanakodtam en is, de gyakorlatilag nem igy mukodik. Csak egy kulon scope-ot kap.
Hmm, és tényleg. Firefoxon is jól fut a kód.
Akkor viszont nem tudom, mi lehet gond. Talán valami régi, inkompatibilis js futtatókörnyezet?
-
nevemfel
senior tag
Sziasztok!
Bocsinálta programozóként kell dolgoznom (
) Van egy kód részlet, amint nem éltem, hogy miért nem jut át a kód.Tudnátok segíteni nekem, hogy mit csesztem el benne?
Belép a switch-be ahol a Tarolas csak ezt a 3 értéket veheti fel (tesztelni a Szaraz ágon futok), de nem lép ki belőle és a konzolra már nem kerül ki a "Korrekció kiszámolva" üzenet..
Köszönettel, FG
// -------azonosítás
console.log('Azonosítás indul');
switch (Tarolas){
case 'Szaraz': {Rikorr = ((Rimin*0.92) + 4.5);
RikorrN = ((Rimin*0.95) + 5.5);
Rmkorr = ((Rm*0.92) - 6.5);
RmkorrN = ((Rm*0.95) - 8.5);
console.log('Száraz ágon');
console.log('Rikorr: ', Rikorr);
console.log('RikorrN: ', RikorrN);
console.log('Rmkorr: ', Rmkorr);
console.log('RmkorrN: ', RmkorrN);
break;}
case 'Nedves': {Rikorr = (Rimin + 4);
RikorrN = (Rimin + 5);
Rmkorr = (Rm - 6);
RmkorrN = (Rm - 8);
console.log('Nedves ágon');
console.log('Rikorr: ', Rikorr);
console.log('RikorrN: ', RikorrN);
console.log('Rmkorr: ', Rmkorr);
console.log('RmkorrN: ', RmkorrN);
break;}
case 'NC' : {Eredmeny[2] = 'Tárolás miatt nem minősíthető';
break;}}
console.log('Korrekciók kiszámolva');A swich case statement javascript alatt a következőképpen néz ki:
switch (expression) {
case value1:
statements1;
break; // opcionális
case value2:
statements2;
break; // opcionális
default:
statements3;
break; // opcionális
}(value1 - 2 lehet Number és string is, ez a legfőbb különbség a C-hez képest.)
Alapszintaktika, hogy bármilyen statement helyére tehetsz több statement-et tartalmazó utasításblokkot, kapcsos zárójelek közt: {}Te a breaket a {}-os utasításblokkba tetted, ami ebben az esetben nem a case esetből ugrik ki, hanem a {}-al jelölt utasításblokkból. Tehát ráfut a következő case esetre.
-
nevemfel
senior tag
ECMAScript
A JavaScript az ECMAScript -en alapul . Talált is a Google rengeteg ezt-azt, de formálisan hogy hogyan néz ki, arról nem találtam anyagot .
Tudnátok segíteni ?
A Javascript nem az ECMAScripten alapul, a kettő ugyanaz. Azért nem Javascript lett a neve a szabványban, mert a "Java" a SUN védett márkaneve. Ugyanezen okok miatt lett a Microsoft implementáció neve JScript, a Microsoft féle Java meg J++.
-
nevemfel
senior tag
Itt a magyarok is szlovákul szólnak hozzám, meg sorolhatnám ...
Ugyan már! A szlovák egy gyengén típusos nyelv! Akárcsak a javascript!

-
nevemfel
senior tag
Sziasztok!
Nem, nem kérdezek semmit
csak egy kis érdekesség, ami nem tudom, hogy fejlesztői hiba-e, vagy régóta fennálló probléma, minden esetre érdekes, de megkerülhető.
Történt ugyanis, hogy egy adott beviteli mezőnek használni akartam az értékét JS-ből.<input type="number" id="szam" value="13">
Az ehhez tartozó lekérdezés a legsztenderdebb valaha:let szam = document.getElementById("szam").value;
Namost sokat csináltam régebben is ilyet, de mint kiderült, egyetlen dolgot nem akartam vele: Összeadási műveletet végrehajtani.Ugyanis nem éppen együttműködő
![;]](//cdn.rios.hu/dl/s/v1.gif)
Kivonni, szorozni, osztani, gyököt vonni, stb simán lehet probléma nélkül. De amint hozzáadnál valamit:szam = szam + 600; // result: 13600. Szóval string lesz belőle, noha egy számbeviteli változóról van szó... Miután ezt felfedeztem, elkezdtem kísérletezni vele. Számértékké konvertálásra azonnal hibát dobott a console. String-é alakítani és utána vissza num-ra lehet és utána minden működik, még az összeadás is... Csak lássuk be, nem a legszebb megoldás
Így maradt a jó öreg mottó: Ha valamit nem tudsz megoldani, kerüld meg! Így lett végül a megoldásszam = (szam / 1) + 600 // result: 613. Szebb is, működik is, de egyébként felesleges lenne, ha néha nem kattanna meg a böngészők motorja![;]](//cdn.rios.hu/dl/s/v1.gif)
Chrome alatt tesztelve
Nem tudom, hogyan akartad számmá konvertálni a stringet, de ez jól működik:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="shortcut icon" href="#">
<title>Document</title>
</head>
<body>
<input type="number" id="szam" value="13">
<script>
let szam = document.getElementById("szam").value;
szam = Number(szam);
szam += 600;
console.log(szam);
</script>
</body>
</html> -
nevemfel
senior tag
-
nevemfel
senior tag
-
nevemfel
senior tag
-
nevemfel
senior tag
A map által meghívott funkció három paramétert kap.
function addDays(element, index, array) {}
Az első az aktuális elem, a második az elem index, a harmadik az egész tömb, amiből kiolvashatsz más elemeket is. -
nevemfel
senior tag
Sziasztok!
array.map esetén a benne lévő functionnak hogy adom meg az adott array i-ik elemét?
pl:
Var date = '2022-06-01'const array = [1, 2, 3]NewArray = array.map(addDays(date, i-ik elem))function addDays(date, days) {var result = new Date(date);result.setDate(result.getDate()+ days);return result.toLocaleDateString("hu");}Ilyesmire gondoltál?
<script>var startDate = "2022-06-01", myArray = [1, 2, 3], newArray;function addDays(element) {var result = new Date(startDate);result.setDate(result.getDate() + element);return result.toLocaleString("hu");}newArray = myArray.map(addDays);console.log(newArray);</script> -
nevemfel
senior tag
Sziasztok!
Adott az alábbi típusú HTML elem:
<a id="category1"href="https://pelda.hu/category1"onclick="funkcio('categories', 'category1'); return false;">Category1</a>Ezeket szeretném megcsinálni úgy, hogy ne legyen a HTML kódban az onclick esemény:
<a id="category1"href="https://pelda.hu/category1">Category1</a>Ezt a kódot készítettem hozzá:
for (var i = 0; i < categoriesArray.length; i++){var element = document.getElementById(categoriesArray[i]);element.addEventListener("click", function(e){funkcio(0, categoriesArray[i]);//alert('element: ' + element);e.preventDefault();});}Azt szeretném, hogy menjen végig a tömb összes elemén (amik az elemek ID-jai), majd mindegyikhez állítsa be, hogy kattintás esetén fusson le a funkcio() függvény (csak a példa kedvéért a név) paraméterként a tömbelemet megkapva. A preventDefault azért kell, hogy ilyenkor ne kövesse a href linkjét.
Az alertet azért raktam bele, hogy lássam, mit csinál - és azt látom, hogy az összes elemnél a tömb utolsó elemét mutatja.
Elég sok találat van rá neten (például ez), de eddig egyikkel sem sikerült megoldanom.
Tudnátok segíteni benne? Köszönöm.for (var i=0; -t cseréld,for (let i=0;-re.Lehet, hogy a másik var-t is cserélni kell.
-
nevemfel
senior tag
Nem kell elnézést kérned, nem tettél semmi rosszat. Csupán arra akartam felhívni a figyelmet, hogy javascriptben ez a fícsör még relatíve új ((persze kinek mi számít újnak. ami tavalyelőtt még divatos volt (kovid), az ma már idejétmúlt (ukrán háború miatt)) zárójel sokszorosan bezárva, nem akarom elterelni a témát).
Typescriptben bizonyára régebb óta megtalálható (nem ismerem a typescriptet, csak megnéztem egy videót a témáról).
-
nevemfel
senior tag
-
nevemfel
senior tag
Köszönöm mindkettőtöknek! Azt hiszem átnézem a licenszeket és árazást is mielőtt döntök. Sokszor csak akkor ingyenes valami, hogyha nem üzleti célhoz használom. Nem tudom a vue esetében mi a helyzet ilyen téren.
szerk:
Datatables is ingyenes MIT licensszel. Úgy tűnik a support, ami pénzbe kerül. [link] A Vue szintén MIT. [link]A datatables ingyenes, de az editor plugin nem tűnik annak. Persze lehetséges, hogy van mód az ingyenes használatra, ebben a részében nem mélyültem el.
-
nevemfel
senior tag
Milyen könyvtárat ajánlotok most kliens oldalra? Ilyen klasszikus dolgok kellenek, hogy táblázatok, egy-egy rekord szerkesztése, kb. mint egy ügyviteli rendszerben, semmi extra, de azért ne a 90-es évek table kinézete. A szerverről JSON-LD-t küldenék, vagy max JSON-t valami REST-es megoldással. Ha lehet ne legyen nagyon elrugaszkodott, nem vagyok oda a túlzott absztrakcióért.
Én a Datatablest használtam párszor. Van hozzá editor plugin, de ezzel még nem próbálkoztam, és az ráadásul fizetős, de talán ez kiváltható más megoldással.
-
nevemfel
senior tag
Köszönöm a tippeket!
@Taci igen erre én is gondoltam, csak talán lenne erre rövidebb kód is, nem?
@nevemfel igen igen, ez világos, csak nem értem, ezt hogy kéne a buttonhoz hozzárendelni? Valahogy nem jött össze nekem még a dolog( igaz eddig csak olyasmiket csináltam, ahol a gomb egy CSS tulajdonságot változtatott, pl animációt indított el stb. )Csinálsz egy objektumot, nyelvenként, belerakod a különféle feliratokat, aztán azt használod amelyik az aktuálisan kiválasztott nyelv.
Hét napjai, hónapok elnevezését még ki tudod nyerni a Date és a localization API-ból, de hogyan fordítasz le bármilyen más feliratot?
-
nevemfel
senior tag
Sziasztok! A következőben szeretnék segítséget kérni:
készítettem egy egyszerű naptárat. Szeretnék mellé tenni két-három gombot, amikre kattintva a naptár nyelve változtatható.
Most ugye "default", tehát magyarul írja ki a hónapot/napot.const dayName = new Date().toLocaleString("default",{weekday:"long"}) ;
const monthName = new Date().toLocaleString("default",{month:"long"});Mondjuk lenne egy német "de-DE" , egy orosz "ru-RU" stb. Már sikerült belezavarodnom, mert eddig amiket próbáltam, nem voltak jók.
Nekem ez:
new Date().toLocaleString("de-DE",{weekday:"long"});Firefoxban azt adja vissza, hogy "Dienstag".
-
nevemfel
senior tag
Köszönöm szépen.
Igen, ezt ismerem.
Az enyem mind a 2 esetben valamilyen eseményre reagált, tehát nem hívhatja meg az első.
De az első a második előtt hajtódott végre, tehát elvileg működnie kellett volna, de ahogy írták egyszer futott csak le egy 3ik függvény, ami kintre mutatott, és onnan fut /youtube api embed/ és azt nem tudom hogyan merre.Mert a youtube oldalról másoltam csak, de azt nem tudom hogy működik.
Ebből adódott a gond.Nem igazán értek a js-hez, csak magamnak tanulgatom.
A te példádban az volt a fő probléma, hogy a youtube inicializációs hívásába tetted bele a video id-ját egy globális változóból. Aztán annak a változónak az értékét ugyan változtattad, de a youtube lejátszó script attól még nem figyeli folyamatosan azt a változót, mert miért is tenné?
Ha a lejátszóban videót akarsz váltani, azt csak úgy tudod megtenni, ha meghívod a player.cueVideoById(videoId) vagy player.loadVideoById(videoId) metódust.
-
nevemfel
senior tag
Először az egyik függvény fut le és utána az, aminek használnia kellene
Én így szoktam csinálni ezt a részt, ha jól értem:
var x = 3;
function myFunction () {
x = x + 3;
fuggveny(x);
}
function fuggveny(x){
var y = x;
}Így csinálom, hogy az egyik függvény hívja meg a másokat és így küldöm át az értéket egyikből a másikba.
Jelen példánál is tök fölösleges átadni x-et paraméterként, hiszen x-hez, mivel globális változó, hozzáfér a myFunction és fuggveny is.
Persze érdemes kerülni a globális változók használatát, csak nem így.
-
nevemfel
senior tag
Na, gyorsan átírtam. Messze van a tökéletestől, de többre már tényleg nincs időm.
<script>// video api// Load the IFrame Player API code asynchronously.var tag = document.createElement("script");tag.src = "https://www.youtube.com/player_api";var firstScriptTag = document.getElementsByTagName("script")[0];firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);// Replace the 'ytplayer' element with an <iframe> and// YouTube player after the API code downloads.var player, btn;function onYouTubePlayerAPIReady() {player = new YT.Player("ytplayer", {height: "100%",width: "100%",playerVars: {loop: 1,controls: 0,showinfo: 0,autohide: 1,modestbranding: 1,vq: "hd1080",},events: {// Ezzel lehet reagálni a "videó betöltött" eseményreonReady: function (event) {btn = document.getElementById("gomb");// Reagálás kattintás eseményrebtn.addEventListener("click", function () {if (player.getPlayerState() === 1) {event.target.pauseVideo();} else {event.target.playVideo();}});},onStateChange: function () {btn = document.getElementById("gomb");if (player.getPlayerState() === 1) {btn.innerHTML = "Szünet";} else {btn.innerHTML = "Indítás";}}},videoId: "",});}// video api vege// MODAL kezdeteconst openModalButtons = document.querySelectorAll("[data-modal-target]");const closeModalButtons = document.querySelectorAll("[data-close-button]");const overlay = document.getElementById("overlay");openModalButtons.forEach(function (button) {button.addEventListener("click", function () {const modal = document.querySelector(button.dataset.modalTarget);openModal(modal, button.id);})})overlay.addEventListener("click", function () {const modals = document.querySelectorAll(".modal.active")modals.forEach(function (modal) {closeModal(modal);})})closeModalButtons.forEach(function (button) {button.addEventListener("click", function () {const modal = button.closest(".modal");closeModal(modal);})})function openModal(modal, videoId) {modal.classList.add("active");overlay.classList.add("active");player.cueVideoById(videoId);}function closeModal(modal) {modal.classList.remove("active");overlay.classList.remove("active");player.pauseVideo();}</script> -
nevemfel
senior tag
Azt javaslom, hogy keress kész scriptet erre, mert sokmindent át kell írni a scriptben. Openmodalra kellene betölteni a videót, closemodalra leállítani, a player eventjeire rakni a lejátszógomb állapotának állítását (indítás/leállítás felirat).
Ha lenne időm, átírnám én neked, de most nem nagyon érek rá.
-
nevemfel
senior tag
Hello,
Nem, nem ez a gond.
Függvényen kívül létre hoztam a változót "var".
Függvényen belül megváltoztatom a változót, majd azt a kapott változót egy másik függvényben szeretném használni. Először az a függvény fut le, ahol megváltozik a változó.
Majd csak utána a másik ahol használni szeretném.
Ahogy működnie kellene: globális változó létre hozva.
Bent a függvényben megváltozik.
Mivel globális, ezért nem csak a függvényben tudom használni.
Másik függvényben használom a megváltozott változót.
Ahogy működik:
globális változó létre hozva.
Bent a függvényben megváltozik.
A függvényen kívül ismét a régi értékkel létezik
Másik függvényben használom a változatlan változót.Biztos hogy először az a függvény fut le, ami megváltoztatja, és meg is változik bent.
Át írtam .onmouseover -re, azaz már klikkelnem se kell, a változó megváltozik, alert-el kiírattam , és megáltozott, de ha a gombra klikkelek, megis az eredeti változót használja.Nem tud ismét lefutni a változó érték adása, nincs függvényben, úgy van mint a példában, nem futhat le többször.
Tudom hogy én hibázom vhol, csak nem találom hol.
Az onYouTubePlayerAPIReady csak egyszer fut le betöltődéskor.
-
nevemfel
senior tag
Van egy olyan sejtésem, hogy a kérdezőnek az alábbi problémája van:
var x = 7;
function myFunction() {
x = x+3;
}És minden kattintás után azt az eredményt kapja, hogy
10. Ő pedig azt szeretné, hogy a második kattintáskor már13legyen, a harmadiknál16és így tovább. Én úgy tudom, hogy vagy külső változóba mentve (DIV innerHTML) vagywindow.localStoragemegoldással lehetne kivitelezni, amit szeretne.
Viszont a kérdése alapján van erre egy harmadik opció is. Ezt pl én sem tudom
És minden kattintás után azt az eredményt kapja, hogy
10.Hát de hogy adna már minden kattintásra 10-et?
-
nevemfel
senior tag
Függvényen kívül van létrehozva a változó.
Úgy is van beírva.
De kell még valami, csak azt elfelejtettem mi.
Mert így ugye lefut az egész, a fuggveny viszont csak klikkeléskor fut le, igaz a másik is csak azután, de a függvényen kívül az oldalbetöltéskori változó érték marad meg. És ide kell a csavar, amit elfelejtettem.Ha csak kódmorzsákat osztasz meg, senki nem fog tudni segíteni.
Ha egy függvény nem lát egy adott változót, annak lényegében három oka lehet:
1. Láthatóság (scope). Javascriptben minden függvény automatikusan látja a rajta kívül deklarált változókat. Ha egy változót egy függvényben deklarálsz, az látható lesz azon függvények számára, amit ezen a függvényen belül deklarálsz. A globális változó automatikusan látható minden függvény számára.
2. Elfedés. Ha van egy külső változód, amit az adott függvénynek látnia kell, de te az adott függvényen belül is deklarálsz egy pontosan ugyanolyan nevű változót, akkor onnantól a függvény számára hozzáférhetetlenné válik a külső változó. Innentől az adott néven már csak a saját lokális változódat látod, ami egy teljesen külön entitás.
3. Sorrendiség. Azt hiszed, hogy az adott változó már megkapta a várt értéket, de valamiért a változóba írás később történik meg, mint a változó értékének kiolvasása.
-
nevemfel
senior tag
Igen, annak a változónak az értékét szeretném a függvényen kívül használni.
Valahogy meg lehet oldani, csak nem találom ahova leírtam régen. Annyira emlékszem, hogy kint kell létre hozni a változót, de a többi nem ugrik be.
Az értékét megkapja a változó, mielőtt a másik függvény használná, tehát azzal nem lenne gond.
Nem tehetem a másik függvényt bele ebbe, mert akkor nem működik.Akkor függvényen kívül hozd létre a változót.
<script>var vmi = "";function egy() {vmi = "Evésivás";}function ketto() {console.log(vmi);}egy();ketto();</script>Ennek azt kell kiírnia, hogy Evésivás, mert így a változó globális lesz, azaz minden function látja.
-
nevemfel
senior tag
-
nevemfel
senior tag
Na ez teljesen jogos.
Akkor módosítok én is. 
@nevemfel: De itt nem csak arról szól a dolog, hogy ha a "?v=1.0.0" lett cache-elve, akkor ha az a verzió át van írva bármi másra (tehát nem egyezik), akkor tölti le újra? Mármint a fájlokba ez nem néz bele, hogy abban milyen verzió van benne, hanem ez itt a html fájlban a változtatás csak kvázi egy flag, hogy halló, kliens, töltsd el újra.
Vagy rosszul használom?
A módszer ismert ( [link] ), a probléma meg az, hogy neked kell kézzel verzióznod az összes belinkelt forrásfájlt (css, js, img). Ha csak egy-két fájlról van szó, nem probléma, ha 15-ről, akkor, jó, ha sok szabadidőd van.
A másik lehetőség, hogy valami build toolt (pl. babel) használsz a css, js generáláshoz, ami megoldja, hogy ha a fájlok változnak, akkor a html-be beszúrt verziót automatikusan frissíti. De ez már haladó szint.
-
nevemfel
senior tag
Javítsatok ki, ha tévedek,
de ezzel a megoldással ezeket a fájlokat újra és újra letölti a kliens. Tehát hiába nem változtattál semmit rajtuk 1 éve, a kliensek minden alkalommal újra és újra letöltik.
Persze ez a korlátlan adatforgalom világában már nem akkora probléma, de jó figyelni erre is.Itt a fórumon valamelyik topikban ajánlottá(to)k ezt a megoldást:
<link rel="stylesheet" href="/fajlmappa/style.css?v=1.0.0"><script src="/fajlmappa/javascript.js?v=1.0.0"></script>
stb.Ez a html kódban van, és amíg nem változtatsz a verziószámokon, nem tölti le újra, cache-ből használja, ha tudja. Ha változtatsz a fájlok tartalmán, akkor pedig itt is verziót emelsz, így a kliens az új verziót tölti le és használja.
Hátha ez (is) hasznos lehet.
Ez a módszer akkor jó, ha létezik valamiféle automatizmus a verziószám kezelésre. Kézzel elég macerás minden fájlt megfelelően verziózni, rádaásul könnyű elfelejteni.
-
nevemfel
senior tag
Hozz létre egy .htaccess fájlt a webroot könyvtárban (nálad ez nyilván nem a /var/www/html könyvtár, de hogy hol van, azt csak te tudhatod. Lényegében az a könyvtár, ahol a főoldal index.html van), ha még nincs, és másold bele ezt:
<FilesMatch "\.(html|htm|js|css|php)">FileETag NoneHeader unset ETagHeader set Cache-Control "max-age=0, no-cache, no-store, must-revalidate"Header set Pragma "no-cache"Header set Expires "Wed, 11 Jan 1984 05:00:00 GMT"</FilesMatch>A legelső sorban (FilesMatch) láthatod, hogy milyen nevű, illetve milyen kiterjesztésű fájlokra fog vonatkozni ez a kódrész.
A Header set direktíva azt eredményezi, hogy a webszerver minden egyes válaszába ezeket a fejléceket fogja belerakni.
A Header set Cache-Control egy cacheléssel kapcsolatos fejléc, ami arra utasítja a böngészőt, hogy ne cachelje az adott oldalt. A többi (Pragma, Expires) inkább csak régebbi böngészők miatt kell.
-
nevemfel
senior tag
Sziasztok!
Szeretnék megoldást kérni az alábbira, mert csak hasonlót találtam neten, de nem egyértelmű sajnos.
Adott egy<input type="text" id="test">terület, ahová szöveges bevitel szükséges. Szeretnék hozzá egy háttér JS-t, ami abban a pillanatban aktiválódik, amint lenyomásra került a "," vessző billentyű.
Például minden egyes "," lenyomása után jelenjen meg egyalert("megnyomtad a vessző billentyűt");. De ez csak akkor, ha abba az egy adott mezőbe történik a bevitel.Lehetséges ilyen?
Előre is köszönöm a válaszokat!
Ha nincs szükség Internet Explorer kompatibilitásra, akkor a legegyszerűbb az input eventet használni:
<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Input Event Test</title></head><body><input type="text" id="input"><div id="log"></div><script>var input = document.getElementById("input");var log = document.getElementById("log");input.addEventListener("input", updateValue);function updateValue(e) {log.textContent = e.target.value;}</script></body></html> -
nevemfel
senior tag
-
nevemfel
senior tag
-
nevemfel
senior tag
Igazad van, az innerHTML sem biztonságos:
There is one built-in safeguard in place, though. Just injecting a script element won’t expose you to attacks, because the section of the DOM you’re injecting into has already been parsed and run.
// This won't executevar div = document.querySelector('#some-div');div.innerHTML = '<script>alert("XSS Attack");</script>';JavaScript that runs at a later time, though, will.
// This WILL rundiv.innerHTML = '<script deferred>alert("XSS Attack");</script>';// This will, toodiv.innerHTML = '<img src=x onerror="alert(\'XSS Attack\')">';Ez a megoldás viszont ígéretesnek tűnik:
If the third-party content is allowed to contain markup, a helper library like DOMPurify will remove any markup that’s not part of a secure whitelist before injecting it.
-
nevemfel
senior tag
Lehetséges, bár leutóbbi emlékeim szerint nekünk pont az volt a problémánk, hogy innerHTML esetén a htmlbe belinkelt, vagy beágyazott script nem hajtódott végre. De már rég foglalkoztam a témával, szóval majd utánanézek ennek.
-
nevemfel
senior tag
Sziasztok,
Belefutottam most egy idegesítő "hibába", checkmarx-nál.
Van pár tool, ahol jquery-s $.post() response-át betöltöm egy div-be.
Normál esetben ha csak szöveg jön vissza tettem bele encode-ot , azzal nincs is gond.
A gond ott kezdődik, hogy van olyan, hogy komplett táblázatot vagy form elemeket(select option részét) adom vissza. Ezt viszont bukom minden esetben, ha encode-olom pl.
.html() <- ehhez már encode kellene alapból.
.innerHTML() <- ez jó lenne nekem, de ezt meg checkmarx nem veszi figyelembe.
.append() <- ez is jó lenne nekem, de ezt sem veszi figyelembe a checkmarxVan erre ötlet vagy megoldás?
.innerHTML() <- ez jó lenne nekem, de ezt meg checkmarx nem veszi figyelembe.
Ez mit jelent, hogy "nem veszi figyelembe"?
innerHTML propertyvel tudsz beágyazni html-t anélkül, hogy escapelni kellene, és a böngésző nem fogja végrehajtani a beágyazott scripteket. -
nevemfel
senior tag
Köszi, akkor ezt hanyagolom

.... viszont

Ugyanez a script megjelenít egy error span-t, ha ugyanazon számértéket talál a táblázatom numbers oszlopában. Az a bajom, hogy már beíráskor megteszi ezt, én pedig azt szeretném, ha csak akkor futna le, mikor átlépek egy másik mezőbe.
(Ez egy olyan táblázat, melynek első nyolc sorában van 1-8-ig terjedő szerkeszthető sorszám, utána meg a muksó annyi sort ad hozzá, amennyit szeretne. Ezért van az, hogy pl a 2. sor 11-re való átírása is hibát ad, mert már megtalálta az 1-es sorszámot egy sorral feljebb.
Ha ezt akkor ellenőrizné, mikor elhagyom a mezőt, akkor kiiiirály lenne. #9024)$('[name="sorszam[]"]').on("input", function () {
var value = $(this).val();
$('[name="sorszam[]"]')
.not(this)
.each(function () {
if ($(this).val() == value) {
document.getElementById("error").style.display = "";
}
});
});köszi

Használd a "change" eventet az "input" helyett. És ha már úgyis jqueryzel, a
document.getElementById("error").style.display = "";
helyett használhatsz$("#error").show();
-ot. -
nevemfel
senior tag
-
nevemfel
senior tag
Konkrétumok nélkül nem tudom megítélni, hogy az a többezer sor vajon fölösleges vagy sem.
A HTML nem csak az oldal struktúráját tartalmazza, hanem a tartalmat is. (kivéve a nem szöveges tartalmakat, mint amilyenek a képek, videók)
A CSS-nek sokszor fel kell készülnie arra, hogy a sokféle készüléken sokféle böngésző van, és nem elhanyagolható számú sor kell ahhoz, hogy egyformára hozza ezeket a különféle kliens szoftvereket (CSS reset).
A JS sokszor komplett reaktív frameworkot rejt magában, ami arra kell, hogy ne kézzel kelljen "ajaxosítani" a kliens-szerver közti interakciót.
Igen, ezek a frameworkok sokszor feleslegesen nagynak tűnnek, de ha ennek nincs negatív hatása a szoftver használójára, nem lassú tőle sem a kliens, sem a szerver, sem a kettő közti kommunikáció, vagy nem _emiatt_ lassú, nem kell foglalkozni vele túl sokat.
A szoftverfejlesztők sokszor milliós havi bérét sok cégnek nem egyszerű kigazdálkodnia, ezért a legfontosabb tényező, hogy a fejlesztő gyorsan tudjon dolgozni, és a frameworkok erre vannak kitalálva. Persze ha egy szoftver nem hatékonyan használja az erőforrásokat, az ronthatja a szoftver minőségét, de idő-, és pénzkidobás olyan dolgot optimalizálni, ami jó eséllyel nem lesz szűk keresztmetszet.
Ja igen, még egy érv az elterjedt frameworkok használata mellett: Jó eséllyel nem te leszel az egyetlen, aki hozzányúl a kódhoz, és ilyenkor jól jöhet az, hogy olyan frameworkot használsz, amit a kollégáid is ismernek.
-
nevemfel
senior tag
Szeretek mindent a lehető legegyszerűbben csinálni. Ráadásul úgy, hogy nem függök senkitől.
Nem tudom, milyen programra gondolsz, ami több ezer sort vesz igénybe. Ha nem egy 3D komplex 8 órás menetidővel rendelkező, böngészőből futtatott játékot írsz, akkor hová használsz ennyi sort? Ilyen méreteket már a Google keresője is tiltólistára tesz.Szeretek mindent a lehető legegyszerűbben csinálni.
A vállalati szoftverfejlesztőket nem azért fizetik, hogy triviális alkalmazásokat rakjanak össze.
-
nevemfel
senior tag
Sziasztok!
Ismételten szeretném zargatni a nálam komolyabb szintű JS programozókat. Van egy CSS kódom, ami az alábbi kinézettel rendelkezik:
#slider {
-webkit-appearance: none;
background-color: rgba(0, 0, 0, 0.0);
}
#slider::-webkit-slider-thumb {
-webkit-appearance: none;
appearance: none;
height: 30px;
width: 60px;
background: url('https://iamthelink.com/iamthepicture.png');
background-size: cover;
}Az a kód, amin dolgozom, azonban nem engedheti meg magának, hogy ilyen formában CSS-t használjon. Éppen ezért ezt szeretném átkonvertálni a JS nyelvezetére.
Tudtok ebben segíteni? A fő probléma a Webkit formával van, illetve a slider-thumb meghívásával.Előre is köszönöm a segítséget!
-
nevemfel
senior tag
-
nevemfel
senior tag
Sziasztok!
Ha van egy data változóm, ami ilyen módon töltődik fel:
console.log(JSON.stringify(data))
[{ arg: "Uniós", val: 50, sum:10, parentID: "" },{ arg: "Hazai", val: 79, sum:20, parentID: "" },{ arg: "Egyéb hazai", val: 17, sum:30, parentID: "" },{ arg: "Egyéb hazai - Tervezés alatt", val: 9, sum:10, parentID: "Egyéb hazai" },{ arg: "Hazai - Tervezés alatt", val: 15, sum:20, parentID: "Hazai" },{ arg: "Uniós - Tervezés alatt", val: 2, sum:30, parentID: "Uniós" },{ arg: "Egyéb hazai - Megvalósítás alatt", val: 7, sum:10, parentID: "Egyéb hazai" },{ arg: "Hazai - Megvalósítás alatt", val: 28, sum:20, parentID: "Hazai" },{ arg: "Uniós - Megvalósítás alatt", val: 35, sum:30, parentID: "Uniós" },{ arg: "Egyéb hazai - Zárás alatt", val: 0, sum:0, parentID: "Egyéb hazai" },{ arg: "Hazai - Zárás alatt", val: 4, sum:20, parentID: "Hazai" },{ arg: "Uniós - Zárás alatt", val: 7, sum:30, parentID: "Uniós" },{ arg: "Egyéb hazai - Lezárt", val: 1, sum:10, parentID: "Egyéb hazai" },{ arg: "Hazai - Lezárt", val: 32, sum:20, parentID: "Hazai" },{ arg: "Uniós - Lezárt", val: 6, sum:30, parentID: "Uniós" }];
console.log(data)
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Ha kézzel felveszem:
var data = [
{ arg: "Uniós", val: 50, sum:10, parentID: "" },
{ arg: "Hazai", val: 79, sum:20, parentID: "" },
{ arg: "Egyéb hazai", val: 17, sum:30, parentID: "" },
{ arg: "Egyéb hazai - Tervezés alatt", val: 9, sum:10, parentID: "Egyéb hazai" },
{ arg: "Hazai - Tervezés alatt", val: 15, sum:20, parentID: "Hazai" },
{ arg: "Uniós - Tervezés alatt", val: 2, sum:30, parentID: "Uniós" },
{ arg: "Egyéb hazai - Megvalósítás alatt", val: 7, sum:10, parentID: "Egyéb hazai" },
{ arg: "Hazai - Megvalósítás alatt", val: 28, sum:20, parentID: "Hazai" },
{ arg: "Uniós - Megvalósítás alatt", val: 35, sum:30, parentID: "Uniós" },
{ arg: "Egyéb hazai - Zárás alatt", val: 0, sum:0, parentID: "Egyéb hazai" },
{ arg: "Hazai - Zárás alatt", val: 4, sum:20, parentID: "Hazai" },
{ arg: "Uniós - Zárás alatt", val: 7, sum:30, parentID: "Uniós" },
{ arg: "Egyéb hazai - Lezárt", val: 1, sum:10, parentID: "Egyéb hazai" },
{ arg: "Hazai - Lezárt", val: 32, sum:20, parentID: "Hazai" },
{ arg: "Uniós - Lezárt", val: 6, sum:30, parentID: "Uniós" }
];Így a data egy tömb, mely objektumokat tartalmaz ugye?
És van is benne adat.
De mikor csak a változót kiíratom, miért lesz [object Object]?
Mit kellene tennem, hogy ugyanazt lássam, mint a string verzióba?Én arra volnék kíváncsi, hogy a data változót hogyan töltöd fel. Ez a JSON.stringify kimenet sehogy nem áll össze. JSON formátum esetén minden key idézőjelek között kellene, hogy legyen.
-
nevemfel
senior tag
Sziasztok!
Ismét betalálok hülye kérdéseimmel, de kíváncsi vagyok, mert nem találok rá választ, bár meglehet, csak rosszul keresek.
Adott az Alert box. Ennek van például ilyen verziója, ahol 2 gomb van és annak függvénye a cselekedet, hogy mit nyomsz meg, illetve vannak text-input-al rendelkezők, stb.Én olyat keresek, illetve arra keresem a választ, hogy a belinkelt verziót testre lehet-e szabni? Vagyis több gombot szeretnék rá, egyedi feliratokkal. Ez megoldható?
Előre is köszönöm a választ
Vagyis több gombot szeretnék rá, egyedi feliratokkal. Ez megoldható?
Nem, csak is egyedi javascriptes messagebox könyvtárral lehet megoldani ezt, mint amilyen pl. ez:
-
nevemfel
senior tag
-
nevemfel
senior tag
Bénázok...
Szeretnék egy tömböt, amibe feltöltöm (mondjuk) a userek vezetéknevét, keresztnevét, korát.
Így gondoltam megcsinálni:
var userData = new Array();for (var i = 0; i < numberOfUsers; i++){userData[i] = new Array();userData[i]["vezetknev"] = lekerdezesEredmenye[i].vezeteknev;userData[i]["keresztnev"] = lekerdezesEredmenye[i].keresztnev;userData[i]["kor"] = lekerdezesEredmenye[i].kor;//stb.}Lekérdezni meg úgy szeretném, hogy userData[0]["kor"], akkor visszaadja, hogy pl. 28.
Működik, de azt kérdezném, hogy van-e ennek jobb módja.
Mert valamiért olyan "furán néz ki"... (aztán persze ez legyen a legnagyobb gond.)Köszi.
Én így oldanám meg:
var userData = [];
lekerdezesEredmenye.forEach(function(element) {
userData.push({
"vezeteknev": element.vezeteknev,
"keresztnev": element.keresztnev,
"kor": element.kor
});
}); -
nevemfel
senior tag
A <button>-nak van egy type attribútuma, ami ezeket az értékeket veheti fel: (submit|reset|button). Ha ez nincs beállítva, akkor alapesetben submit, kivéve IE7 és korábbi böngészőket. <button type="button">Klikkme</button> a megoldás.
-
nevemfel
senior tag
Akkor viszont látnom kéne a scriptedet, meg az oldal kódját, amibe bekerül, hogy tudjak mondani valami okosat.
Eszembe jutott még valami: A button egy formon belül van, és a button megnyomása egyben a formot is submitolja.
Új hozzászólás Aktív témák
-
Fórumok
Mobilarena - mobil fórumok
Okostelefonok Mobiltelefonok Okosórák Autó+mobil Üzlet és Szolgáltatások Mobilalkalmazások Tartozékok, egyebek Mobilarena blogokPROHARDVER! - hardver fórumok
Notebookok TV & Audió Digitális fényképezés Alaplapok, chipsetek, memóriák Processzorok, tuning Hűtés, házak, tápok, modding Videokártyák Monitorok Adattárolás Multimédia, életmód, 3D nyomtatás Nyomtatók, szkennerek Tabletek, E-bookok PC, mini PC, barebone, szerver Beviteli eszközök Egyéb hardverek PROHARDVER! BlogokIT café - infotech fórumok
Infotech Hálózat, szolgáltatók OS, alkalmazások SzoftverfejlesztésGAMEPOD - játék fórumok
PC játékok Konzol játékok MobiljátékokLOGOUT - lépj ki, lépj be!
LOGOUT reakciók Monologoszféra FototrendFÁRADT GŐZ - közösségi tér szinte bármiről
Tudomány, oktatás Sport, életmód, utazás, egészség Kultúra, művészet, média Gazdaság, jog Technika, hobbi, otthon Társadalom, közélet Egyéb Lokál PROHARDVER! interaktív
- Villanyszerelés
- Samsung Galaxy S24 Ultra - ha működik, ne változtass!
- Star Citizen
- Anglia - élmények, tapasztalatok
- Büszke apukák és anyukák topikja
- Itt a Galaxy S26 széria: az Ultra fejlődött, a másik kettő alig
- LEGO klub
- Parkside szerszám kibeszélő
- Intel Core i5 / i7 / i9 "Alder Lake-Raptor Lake/Refresh" (LGA1700)
- Brutál külső akku, túlzásba vitt töltőfej - Anker újdonságok tesztje
- További aktív témák...
- Eladó - Xiaomi Mi 8 64GB, 6GB RAM, DualSim, Kártyafüggetlen, Fekete
- www.olcsogamerpc.hu - GamerPC 154 - AMD Ryzen 5 9600X / RX 9060 XT / 16GB DDR5 / 1TB NVMe - GARANCIA
- Apple iPhone 16 Pro 256GB eladó! 92% akku, patika, 12 hónap gar
- Eladó - Samsung Galaxy A32 4G 128GB, 4GB RAM, DualSim, Kártyafüggetlen, Fekete
- Eladó - Motorola Moto G100 128GB, 8GB RAM, Kártyafüggetlen
- Bomba ár! Lenovo ThinkPad X390 - i7-8G I 16GB I 256SSD I 13,3" FHD I HDMI I Cam I W11 I Gari!
- Nvidia Quadro és AMD FirePro kártyák - számla, 6 hó gar. - 05.14: Tesla M60, Quadro P2000
- ÚJ Lenovo ThinkBook Intel Core i9-14900HX, 32GB, 1TB, RTX 4060(8GB) IPS 60Hz
- Apple iPhone 6S Plus 32GB Rose Gold Karcmentes állapot 100% akkumulátor
- Dell 14 Latitude 7450 WUXGA 2in1 Touch X360 Ultra5 135U 12mag 16GB 512GB Win11 Pro WiFi7 Garancia
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest





Odáig jut el a dolog hogy rákattintásra megjelenik nagyméretben a kép és ennyi.


![;]](http://cdn.rios.hu/dl/s/v1.gif)

Ráadásul a javascript csak egy szálon tud futni, szóval ne keverjük össze az aszinkron futást a párhuzamos futással.



