- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Fejhallgató erősítő és DAC topik
- A Linux megnégyszerezte magát a Steamen — a Microsoft ismét ígérget
- AMD vs. INTEL vs. NVIDIA
- Először kombinálja a Full HD-t az 1000 Hz-cel egy monitor
- AMD Navi Radeon™ RX 9xxx sorozat
- Projektor topic
- Speciális kiadású AMD-s alaplapot villantott az ASUS a 20 éves ROG-jubileumra
- Apple MacBook
- AMD FX
-
Fórumok
PROHARDVER! - 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! BlogokMobilarena - mobil fórumok
Okostelefonok Mobiltelefonok Okosórák Autó+mobil Üzlet és Szolgáltatások Mobilalkalmazások Tartozékok, egyebek Mobilarena 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
-
Bici
félisten
Igen, és igazad is van.

Meg is oldódott azzal, hogy rácsekkoltam, hogy az adott tablazat[key] undefined-e, és ha igen, akkor kapott egy kezdeti üres tömb értéket.
if (tablazat[key] == undefined) tablazat[key] = [];Ha netán létezik elegánsabb megoldás, akkor szívesen fogadom.

Köszönöm szépen!

-
Bici
félisten
Sziasztok!
Tudom, hogy ide OFF, de nincs jobb topik.
Typescript-tal szenvedek.Egy táblázat elemeit szeretném eltenni valamilyen adatstrukturába úgy, hogy minden oszlopnak van neve.
Eddig ez nem is gond, de nem tudom előre, hogy az oszlopoknak mik lesznek a nevei.A TS meg előre kérné, hogy a table.columnName deklarálva legyen.
Próbálkoztam egy olyannal, ami associative array névre hallgat, de az mindtha nem akarná key-t bevenni string változóból, csak kiírva, hogy 'oszlopnév'.

let tablazat: {[key: string]: string[] } = {};...fut a kod, a key és a cellastring változó kap értéket...tablazat[key].push(cellastring);Es itt a tablazat[key]-re dob egy ilyet:
TypeError: Cannot read properties of undefined (reading 'push')
-
Bici
félisten
Na, megoldódott.
Nem a void a gond, hiszen a semmit is visszaadja, ha await-elsz rá.
Egy ostoba typo volt a gond a meghívott fv-ben.
Már minden jó.
Azért köszi a támogatást, és sorry a vaklármáért!

-
Bici
félisten
async fv1() {
await akármi();
}async fv2() {
await fv1();
}Ezt látom a vscoda-ban; az aláhúzott rész alápontozva van, és mondja, h oda nem kell async.
De amikor a fv1 fölé viszem az egeret, akkor azt írja, h "Promise<void>" a típusa. -
Bici
félisten
Sziasztok!
VSCode-ot használok, és egy függvényt hívok meg async fv-ből, await-tel.
A meghívott függvénynek a VSCode szerint is Promise<void> a visszatérési típusa, de mégis alápöttyözi az await szót, hogy szerinte erre nincs szükség.Ha Promise, akkor miért nem kell az await?
Kössz!

-
Bici
félisten
Végül a Katalon Recorder (Selenium IDE) lett a megoldás. Igen, kellett kicsit szenvedni vele, hogy változnak a gombok nevei, de végül sikerült. A csv-t pedig fel lehet tölteni egy "Data driven" fülön belül, onnan berakosgatja.
Egyetlen probléma, hogy kicsit lassabb, mert max sebességen nem tudom futtatni, mert ugye mentés után kell egy 0.5s meg amíg a mentés gomb kattinthatóvá válik, így kb 10 mp felvinni 1-et.
Ááá, ha van ilyen csv feltöltési lehetőség, akkor az más.
Király, hogy megoldódott.
-
Bici
félisten
A selenium nem tud natív alkalmazást vezérelni.
Vagyis az excelt fel kell elötte tölteni pl. google drive-ra, onnan már elérhető a selenium számára is.
Ebben az lesz a nehéz, hogy nem biztos, hogy a gugli felületén egyértelműen címezhető minden UI elem, így xpath alapján kell majd szenvedni, ami nem mindig hatékony.Én ezt az egészet úgy csinálnám, hogy megfejtem a feltötő API-t és írok rá egy JS scriptet pl. nodejs-sel, ami egy csv-ből vagy akár txt-ből kiszedni az adatokat.
-
Bici
félisten
Sziasztok!
Egy objektum kulonbozo elemeit szeretnem konnyen ertheto formaban valtozoba menteni, hogy azzal lehessen rajuk hivatkozni.
pl.
eletkor: Objektum.Adatok.Felhasznalok.Bela.Eletkor,
nev: Objektum.Katalogus.Szokek.Nagymelluek.Nev,
magassag: Objektum.Lista.Fiuk.Gyula.MagassagAz Objektum sokfele lehet, es nehez megjegyezni, hogy melyik fajtaban hol talalhato a kert adat, emiatt akarom egyszerusiteni.
Ha egy fuggvennyel olvasom ki, akkor mar a fv. elso lefutasanak idejeben kell lenni egy Objektumnak, de ez nem biztositott, sot a futas kozben folyton valtozik ez az objektum, vagyis sok fele jon letre belole.
JSON-nel nem tudtam megoldani, hogy az idezojelben levo kifejezes az objektum belsejere vonatkozzon.
Mi erre a bevett szokas?
-
Bici
félisten
Koszi a valaszokat!
Sikerult megoldani.

-
Bici
félisten
Sziasztok!
Egy valtozoba szeretnek belerakni egy olyan stringet, ami tartalmaz " es ' karaktereket is.
Mi ennek a modja?
Kossz!
-
Bici
félisten
"A rendező kód akor futna le, amikor az összes kép betöltődött, ezáltal tudjuk már a dimenzióit."
Ezen elgondolkoztam, hogy biztos ez a jó megoldás? Miért nem küldöd ki első körben a képek dimenzióit, url-jét, majd azt beillesztve a megfelelő helyekre, szépen lejönnének a képek, mindegyik pont a helyére.Mert nincsenek meg előre a képek. A gépről feltöltött képeket kell rendeznem méret szerint.
Tudtommal az onLoad lefutása elött nem tudom kiolvasni a méretüket. -
Bici
félisten
Szia, kevéssé világos ennyiből, hogy pontosan mit szeretnél elérni, de használhatsz egy modulra/függvényre globális jelölőt (flaget) amit akkor billentesz át, ha minden betöltődött.
Egy másik megközelítés, vagy a fenti megközelítés kiterjesztése, ha reaktívan gondolkozol. Ez nagyjából azt jelentené, hogy akik/amik érdekeltek az összes kép betöltődésében, azok beregisztrálnak egy callbacket például az "összes kép betöltődött" eseményre. Ebben az a jó, hogy az a modul amelyik a betöltést végzi csak gyengén lesz csatolva azokhoz amelyek a betöltődést figyelik.
Vagy használhatod az "alap" megoldást, és callbackeket hívsz meg ha az összes kép betöltődött.
Ezeket itt szemléltetem. http://jsfiddle.net/ygvvs0sm/
Egyiket sem próbáltam ki, így kezeld őket pseudokódokként. üdv
Köszi!
Amit szeretnék, az a következő:
Van X darab kép. Ezeket szeretném a méretük szerint elrendezni.
A rendező kód akor futna le, amikor az összes kép betöltődött, ezáltal tudjuk már a dimenzióit.Utána nézek a callback-es megoldásnak és a flag-nek is.
Viszont a flag-es megoldás miben különbözik attól, amit én csináltam, vagyis egy globális változó tárolja azt, hogy melyik kép van betöltve? -
Bici
félisten
Sziasztok!
Megint lett időm egy kicsit fogalkozni a kép betöltő progimmal.
Azt szeretném elegánsam megoldani, hogy feltöltök X darab képet, és amikor mindegyik betöltődött, akkor kirajzolom őket.
Azért kell megvárni a betöltődést, mert a kirajzolásnál szeretném tudni a szélességüket.
Jelenleg ezt úgy oldottam meg, hogy a kép objektumok onload funkciója meghív egy függvényt, ami egy globális változóban eltárolja, hogy melyik van már betöltve, ezután futtat egy ellenőrzést, és ha mindegyik kész van, akkor rajzol.Viszont van egy sejtésem, hogy globális változót használni nem elegáns (sokszor kaptam már ilyen kritikát), így elkezdtem gondolkodni, hogy hogy lehetne ezt szebben megoldani.
Egyelőre nincs eredmény, így inkább megkérdezem Tőletek.Esetleg erre valakinek van ötlete?
Nem akarok türelmetlen lenni, csak csillapíthatatlan tudás szomjam van.
Kössz!
-
Bici
félisten
Sziasztok!
Megint lett időm egy kicsit fogalkozni a kép betöltő progimmal.
Azt szeretném elegánsam megoldani, hogy feltöltök X darab képet, és amikor mindegyik betöltődött, akkor kirajzolom őket.
Azért kell megvárni a betöltődést, mert a kirajzolásnál szeretném tudni a szélességüket.
Jelenleg ezt úgy oldottam meg, hogy a kép objektumok onload funkciója meghív egy függvényt, ami egy globális változóban eltárolja, hogy melyik van már betöltve, ezután futtat egy ellenőrzést, és ha mindegyik kész van, akkor rajzol.Viszont van egy sejtésem, hogy globális változót használni nem elegáns (sokszor kaptam már ilyen kritikát), így elkezdtem gondolkodni, hogy hogy lehetne ezt szebben megoldani.
Egyelőre nincs eredmény, így inkább megkérdezem Tőletek. -
Bici
félisten
Szia.
Sajnos még mindig nem értek a canvas-hoz, így megint csak a kódodról fogok beszélni.
> Remélem, nem "csúnya" nagyon a kódom.
Nem fogok kertelni, szerintem nem fogod magadra venni, nem is azért írom, de... igen az, sajnos elég csúnya

Na persze ez nem gond! Tényleg nem. Egyrészt mert mindenki kezdi valahol, másrészt meg az látszik, hogy más múltad van. Szépen nem így irunk JavaScript kódot.Ezekkel van probléma benne:
var betolt = function(i,b,a)
{
imageObj[i].onload = function ()
{
ctx.drawImage(imageObj[i], b, 0, d, a);
};
};i, b, a -> ezek a formális változónevek egész egyszerűen rosszak, sosem adunk egybetűs váltzóneveket!
Nem tudni, hogy mit jelölnek. i az vajon index, a b meg a, na erre még tippe sincs az embernek. Nincs overhead akkor sem, ha 1 betű helyett 20 hosszú változó neveket használsz, cserébe értelmes lesz a kód. Ennek azért van jelentősége, mert
1: egy cégnél nem csak te fogod a kódodat olvasni, hanem előbb utóbb más is. És kontextus nélkül ezek a nevek konkrétan hátráltatják más munkáját, az idő pénz, tehát az ilyen nevek használatával pénz deficit keletkezik (lol
). Komolyra fordítva a szót, tényleg más is akarja még olvasni a kódod, ne adj isten módosítani, olyankor jól jön ha "self-descriptive" a kódod.
2: JS-ben gyakran végzünk minifikálást, ami az egyik állomása a buildelésnek, így nem kell figyelni arra, hogy minél tömörebb legyen a kód, a végtermék úgyis tömör lesz.
Példa: még ennél a minimalista példánál is látszik, bár mondanom sem kell, hogy értelmesebb kódnál jobban kijön a minifikálás "előnye"Before (tordeltem):
var myOwnImageObject = [];
function imageLoading(indexVar, someOtherVarWhichHasADescriptiveName, anotherFormalParam) {
myOwnImageObject[indexVar].onload = function() {
context.drawImage(
myOwnImageObject[indexVar],
someOtherVarWhichHasADescriptiveName,
0,
wut,
anotherFormalParam
);
};
}After:
function imageLoading(n,a,e){myOwnImageObject[n].onload=function(){context.drawImage(myOwnImageObject[n],a,0,wut,e)}}var myOwnImageObject=[];Tehát nincs igazán érv az egybetűs változónevek mellett.
3:
Nem túl jó kódod stílusa. Gondolom C++-ból jöttél át, legalábbis én úgy tudom, hogy ott szoktak K&R style -t használni. Ez az automatikus pontosvessző , áhh inkább írom angolul úgyis úgy tudsz rákeresni: automatic semicolon insertion miatt nem ajánlott így kódolni JavaScriptben. Nagyon sok verzió létezik, én leginkább az airbnb-hez tartom magam. Számomra ez eredményezi a leginkább olvasható, karbantartható kódot. Tehát ha az airbnb szerint írjuk a kódodat, akkor valahogy így nézne ki (ha én írnám akkor is):var c = document.getElementById("myCanvas"),
ctx = c.getContext("2d"),
files = document.getElementById("files-upload").files,
imageObj = [],
a = (1920 - (files.length - 1)) / (files.length);
function betolt(i, b, a) {
imageObj[i].onload = function() {
ctx.drawImage(imageObj[i], b, 0, d, a);
};
}
for (var i = 0, len = files.length; i < len; ++i) {
b = (a + 1) * i;
imageObj[i] = new Image();
imageObj[i].src = "útvonal" + files[i].name;
betolt(i, b, a);
}4:
Az a változót tudatosan, vagy sem, de globális scope-ba helyezted, ez rossz szokás, abszolút kerülendő.5:
ez inkább jó tanács: JSHint vagy egyéb linter toolok használata javallott. Szinte minden Editorhoz, IDE-hez létezik már plugin.Üdv
Heló!
Köszönöm az elemzést!

A változónevekre figyelni fogok.

A K&R style-t azért használom, mert én így jobban átlátom a kódok kezdőként, egyébként nem C++-ból jövök, hanem a 17 évvel ezelötti középiskolás pascal-ból.
Igyekezni fogok ezt is megszokni.
Hinter tool-t keresek majd a Bluefish-hez, bár lehet hogy áttérek másra.
Viszont ami most megfogott.
A a változót azért raktam külön, hogy ne a ciklusban fusson le minden alkalommal.
Egy függvénybe kellene tennem? -
Bici
félisten
Szia
1: ... = Array; Ehelyett inkabb ... = [] az ajanlott. [link]
2: ne tegyel semmit kulon fuggvenybe, ahogy fordfairlane is irta, a closure nem tartalmazza az i valtozodat, itt egy (ROSSZ) pelda, ez tortenik most a kododban.
http://jsfiddle.net/Jim_Y/6vy2x7Lo/1/
Latszik, hogy 10x "10" irodik ki a kepernyore, tehat ha lebontjuk, akkor
ctx.drawImage(imageObj[10], b, 0, a, 1080);
ctx.drawImage(imageObj[10], b, 0, a, 1080);
ctx.drawImage(imageObj[10], b, 0, a, 1080);
ctx.drawImage(imageObj[10], b, 0, a, 1080);
...stb tortenikEz azert van, mert az onload fuggveny egy closure-t kepez az ot korulolelo fuggvennyel, ami azt jelenti, hogy amikor az onload fv. lefut, akkor mindig megnezni a runtime, hogy az aktualis kontextusban mi az i valtozo erteke. Mivel az onload aszinkron, ezert amikor azok lefutnak, addigra a ciklus mar vegzett, es az i ciklusvaltozo erteket 10-re novelte. Abban a pillanatban ahogy az onload lookup-olja az i-t, az mar 10-es ertekkel szerepel a kontextusban. Ezert lesz 10x"10" kiirva a konzolra.
Ennek megoldasa, egy uj Execution Context (~ uj variable environment, ~closure) letrehozasaval orvosolhato, amiben az i valtozo mindig az eppen aktualis ertekre lesz beallitva, igy amikor az onload (lookup i) tortenik, akkor az aktualis environment context-ben az i jo ertekkel fog szerepelni.
KetHarom pelda:1: http://jsfiddle.net/Jim_Y/6vy2x7Lo/2/ reading Function.prototype.bind
2: http://jsfiddle.net/Jim_Y/6vy2x7Lo/3/ reading closures
3: http://jsfiddle.net/Jim_Y/6vy2x7Lo/4/ reading IIFE3: Az onload aszinkron muvelet, ami a ciklus lefutasa utan fog csak meghivodni.
Itt egy szemlelteto pelda http://jsfiddle.net/Jim_Y/LsuLL7dg/1/
A kodban a setTimeout az onload-ot szemlelteti. Latszik, hogy amit azon kivul csinalsz, az elobb fut le, mint amit azon belul.
Udv
Heló!
A példáidat sajnos nem tudtam az én kódommal összehozni, ezért úgy döntöttem, hogy csak az elméletet használom fel belőle (enclosure), és kerestem erre a neten példákat, és ez lett a működő eredmény:
{
var c=document.getElementById("myCanvas");
var ctx=c.getContext("2d");
var files = document.getElementById("files-upload").files;
var imageObj = [];
var betolt = function(i,b,a)
{
imageObj[i].onload = function ()
{
ctx.drawImage(imageObj[i], b, 0, d, a);
};
};
a = ( 1920 - (files.length - 1) ) / ( files.length );
for (var i = 0; i < files.length; i++)
{
b = ( a + 1 ) * i;
imageObj[i] = new Image();
imageObj[i].src = "útvonal"+files[i].name;
betolt(i,b,a);
}
}A problémát a te példáidnál az okozta, hogy nem értettem a három közti különbséget és a szintaktikát - pl. a kapcsos zárójel után írt (i), vagy az, hogy egy zárójelen belül van egy függvény az onload jobb oldalán, vagy a settimeout-os Image függvény értelmét sem értem. Ezt mind a kettes példából vettem.
Persze, utána fogok nézni mindegyiknek, mert ez így nem állapot, hogy ilyen alap dolgokat nem tudok, csak most nem hagyott nyugodni a dolog és működésre akartam bírni olyan módszerrel, amit értek.
Remélem, nem "csúnya" nagyon a kódom.Ezen kívül van még egy kérdésem: A betöltött képeket szeretném mouse scroll segítségével átméretezni úgy, hogy a kép nem lép ki a rendelkezésére álló keretből, hanem levágódik a széle, ami nem fér ki - persze egérrel lehetne drage-elni is a képet. További funkció lenne az egymás melletti képek közti választóvónal eltolása.
Összességében egyfajta montázs progit akarok csinálni - egyelőre csak egymás melletti képekkel, átfedés nélkül.
Egyelőre még nem jártam sikerrel, de felmerült egy kérdés ezzel kapcsolatban: elég ehhez egy canvas, vagy érdemesebb képenként klön canvas-t létrehozni? -
Bici
félisten
Szia
1: ... = Array; Ehelyett inkabb ... = [] az ajanlott. [link]
2: ne tegyel semmit kulon fuggvenybe, ahogy fordfairlane is irta, a closure nem tartalmazza az i valtozodat, itt egy (ROSSZ) pelda, ez tortenik most a kododban.
http://jsfiddle.net/Jim_Y/6vy2x7Lo/1/
Latszik, hogy 10x "10" irodik ki a kepernyore, tehat ha lebontjuk, akkor
ctx.drawImage(imageObj[10], b, 0, a, 1080);
ctx.drawImage(imageObj[10], b, 0, a, 1080);
ctx.drawImage(imageObj[10], b, 0, a, 1080);
ctx.drawImage(imageObj[10], b, 0, a, 1080);
...stb tortenikEz azert van, mert az onload fuggveny egy closure-t kepez az ot korulolelo fuggvennyel, ami azt jelenti, hogy amikor az onload fv. lefut, akkor mindig megnezni a runtime, hogy az aktualis kontextusban mi az i valtozo erteke. Mivel az onload aszinkron, ezert amikor azok lefutnak, addigra a ciklus mar vegzett, es az i ciklusvaltozo erteket 10-re novelte. Abban a pillanatban ahogy az onload lookup-olja az i-t, az mar 10-es ertekkel szerepel a kontextusban. Ezert lesz 10x"10" kiirva a konzolra.
Ennek megoldasa, egy uj Execution Context (~ uj variable environment, ~closure) letrehozasaval orvosolhato, amiben az i valtozo mindig az eppen aktualis ertekre lesz beallitva, igy amikor az onload (lookup i) tortenik, akkor az aktualis environment context-ben az i jo ertekkel fog szerepelni.
KetHarom pelda:1: http://jsfiddle.net/Jim_Y/6vy2x7Lo/2/ reading Function.prototype.bind
2: http://jsfiddle.net/Jim_Y/6vy2x7Lo/3/ reading closures
3: http://jsfiddle.net/Jim_Y/6vy2x7Lo/4/ reading IIFE3: Az onload aszinkron muvelet, ami a ciklus lefutasa utan fog csak meghivodni.
Itt egy szemlelteto pelda http://jsfiddle.net/Jim_Y/LsuLL7dg/1/
A kodban a setTimeout az onload-ot szemlelteti. Latszik, hogy amit azon kivul csinalsz, az elobb fut le, mint amit azon belul.
Udv
Köszönöm szépen a részletes segítséget!
Teljesen érthető. 
Este végignézem a linkelt példákat. -
Bici
félisten
Nem az a gond, hogy a closure-on belül az i indexváltozó nem fog stimmelni az event lefutásakor?
Én is ilyesmire tippelek, mert valószínűleg a következő ciklus hamarabb írja felül a ciklus az i-t, mint ahogy betöltődne a kép.
Este kipróbálom a két for ciklusos módszert, hátha. Viszont itt sem biztosított, hogy a képek addigra betöltődnek. Mi van, ha nagyobb egy kép?Olyasmi megoldáson töröm a fejem, ami biztosítja, hogy a ciklusok ne vágják felül az imageObj[I] változót, hanem egymástól függetlenül várják ki a betöltést.
Lehet, hogy egy külön függvénybe kellene raknom az onload-ot és az i-t paraméterként beadni?
-
Bici
félisten
Próbáltam, ugyanaz.
Az a baj, hogy nem látom még át hogy mi történik a háttérben, és mi okozza a problémát. Valami időzítési móka lesz, szerintem, de lehet, hogy tévedek.
Olyan ciklus nincs, ami egy eseményre megy csak tovább?
Esetleg a változónévként működő tömb elemek akadnak össze a ciklus különböző köreiben?
Lehet, hogy mégsem a indexes megoldást kellene erőltetnem, hanem valami pointeres mókát?
Vagy az egész kód alapvetően rossz felépítésű? Nem tartom bonyolult dolognak, hogy egy lista alapján képeket töltök be canvas-ba, ezért furcsa, hogy máris ilyenbe ütköztem. -
Bici
félisten
Azt írja, hogy a drawImage függvény szignatúrája nem jó...
Uncaught TypeError: Failed to execute 'drawImage' on 'CanvasRenderingContext2D': No function was found that matched the signature providedJa nem - [link]
Note If you're specifying an image, be sure the image content has loaded fully if you're calculating the width and height of the img tag.Igen, én is erre jutottam, de hogy oldom meg, hogy addig várjon a következő körrel, míg meg nem hívódik az onload()?
Sorry, ha hülyeséget kérdeztem, de ebben kezdő vagyok. -
Bici
félisten
Sziasztok!
Javascript-ben mi a módja egy változó nevének a dinamikus változtatásának?
HTML5 Canvas-ba kell betöltenem sok képet. Előre nem tudom, hogy hány kép lesz; amennyit a júzer kiválaszt.
Vagyis nekem kellene létrehoznom a ImageObject változókat, hogy ne mindig ugyanabba a változóba töltse be a képet.
Próbálkoztam ImageObject[i]-vel is az alábbi módon:var c=document.getElementById("myCanvas");
var ctx=c.getContext("2d");
var files = document.getElementById("files-upload").files;
var imageObj = Array;
for (var i = 0; i < files.length; i++)
{
imageObj[i] = new Image();
imageObj[i].onload = function()
{
ctx.drawImage(imageObj[i], b, 0, a, 1080);
}
imageObj[i].src = "path/"+files[i].name;Erre sajna ezt kapom:
Uncaught TypeError: Failed to execute 'drawImage' on 'CanvasRenderingContext2D': No function was found that matched the signature provided.
imageObj.(anonymous function).onloadA DrawImage-es sorban történik ez a hiba.
Mi a megszokott eljárás ilyen esetben?
Kössz!

Közben arra a - nem biztos, hogy helyes - megállapításra jutottam, hogy a hibaüzenetet az okozza, hogy a ciklus akkor is tovább megy, ha a kép még nem töltödött be, így nem tud lefutni az onload esemény.
Ezt hogy lehet megoldani? -
Bici
félisten
Sziasztok!
Javascript-ben mi a módja egy változó nevének a dinamikus változtatásának?
HTML5 Canvas-ba kell betöltenem sok képet. Előre nem tudom, hogy hány kép lesz; amennyit a júzer kiválaszt.
Vagyis nekem kellene létrehoznom a ImageObject változókat, hogy ne mindig ugyanabba a változóba töltse be a képet.
Próbálkoztam ImageObject[i]-vel is az alábbi módon:var c=document.getElementById("myCanvas");
var ctx=c.getContext("2d");
var files = document.getElementById("files-upload").files;
var imageObj = Array;
for (var i = 0; i < files.length; i++)
{
imageObj[i] = new Image();
imageObj[i].onload = function()
{
ctx.drawImage(imageObj[i], b, 0, a, 1080);
}
imageObj[i].src = "path/"+files[i].name;Erre sajna ezt kapom:
Uncaught TypeError: Failed to execute 'drawImage' on 'CanvasRenderingContext2D': No function was found that matched the signature provided.
imageObj.(anonymous function).onloadA DrawImage-es sorban történik ez a hiba.
Mi a megszokott eljárás ilyen esetben?
Kössz!

-
Bici
félisten
-
Bici
félisten
Én meg a Tiédet nem értem, de utánanézek a w3schools-on, hogy értsem is.
Pedig nagyon egyszerű. A függvény hívást az űrlapelem onkeyup és onchange eseményére kötöm rá. Az első akkor fut le, ha begépelsz 1 betűt (és felengeded a billentyűt), a másik meg akkor, ha mondjuk bemásolsz valami szöveget az űrlap elembe vagy simán csak elveszti a fókuszt. Pareméterként az űrlap elem objektumát adom át, így a szövegmanipulálásnál egyből tudom, hogy melyik űrlapelem eseménye hívta meg a függvényemet. Ezzel egyrészt megspórolom a DOM-ban való turkálást, másrészt a függvénynek így teljesen mindegy lesz, hogy melyik input-nak az értékét kell módosítsa.A függvényben egy egyszerű reguláris kifejezéssel működő betűcsere van. A reguláris kifejezés mindenre karakterre match-el, ami nem a-z közötti betű. A reg. kifejezés végén a g kapcsoló mondja meg, hogy ne csak az első előfordulást cserélje, az i kapcsoló meg azt, hogy a kis-nagybetűk közötti különbséget ne vegye figyelembe. A replace második paramétere az üres string, erre cserélünk minden olyan karakter, amire ráillik a pattern-ünk.
Köszi, csak a "/[^a-z]/gi" részt nem értettem. De már értem, megnéztem a w3schools-on.

Viszont az "i" nem kell a végére, mert így engedi a nagybetűket is, nekem meg csak kicsik kellenek.
Köszi a segítséget!
-
Bici
félisten
A kódodat nem nagyon értem, de ha ilyen hosszú, akkor már régen rossz.
Például itt egy javascript függvény, ez azt csinálja, amit szeretnél:
function strip_nonalpha(p_sender){
p_sender.value=p_sender.value.replace(/[^a-z]/gi,'');
}És a hozzá tartozó ürlapelem:
<input type="text" name="szoveg" value="" onkeyup="strip_nonalpha(this);" onchange="strip_nonalpha(this);">
Köszi, kipróbálom.
Én meg a Tiédet nem értem, de utánanézek a w3schools-on, hogy értsem is.
Az enyém úgy műxik, hogy megvizsgálja, hogy az éppen leütött karakter szerepel-e az általam definiált karaktersorozatnak.
A kód legalább két értékadással rövidíthető lenne, csak az átláthatóság keddvéért csináltam így. De már látom, hogy túl nyakatekert megoldás. -
Bici
félisten
Hali!
Írtam egy js kódot a szövegmezők ellenőrzésére:
function showAddress(adat)
{
document.forms["capsform"][adat].value=document.forms["capsform"][adat].value.toLowerCase();
abc="abcdefghijklmnopqrstuvwxyz";
szoveg=document.forms["capsform"][adat].value;
hossz=document.forms["capsform"][adat].value.length;
if (abc.match(szoveg.charAt(hossz-1)) == null)
{
document.forms["capsform"][adat].value=szoveg.substring(0,hossz-1);
}
}Minden jó, de a \|[$*ˇ^¨+()? karaktereket átengedi, mivel a "abc.match(szoveg.charAt(hossz-1))" kifejezés nem ad vissza semmilyen értéket.
Próbáltam már más dolgokat is, de egyelőre semmi sem úgy műxik, ahogy én szeretném.
A cél az, hogy csak és kizárólag az angol abc kisbetűit lehessen beírni a mezőbe, és ha mást írok be, akkor az törlődjön, vagy bele se kerüljön.Köszi!
(Közben én is kísérletezem tovább.) -
Bici
félisten
Bármelyik javascript tutorial megfelel, a feladathoz semmilyen extra dolgot nem kell használni. W3Schools-os javascript leírást ajánlom, de lehet, van könnyebben olvasható is a neten.
Nem csak az érdekel, hogy hog ylehet megcsinálni, hanem hogy hogy érdemes.
Ennél a feladatnál a józan észt leszámítva nagy trükköt nem tudsz bevetni, cserébe jó hosszú lesz a kódod.azt már tudom, hogy az "onSubmit" fv.-nyel kell megoldani.
Az onsubmit alapvetően nem függvény, hanem egy esemény, ami akkor hívódik meg, amikor az adott űrlapot elküldöd. (Nyilván, az onsubmit esemény értéke egy függvény).
A különféle ellenőrzéseket /extrákat rákötheted még az űrlap elemek onfocus és onblur eseményeire, ízlés szerint. Az onfocus akkor fut le, amikor az űrlap elem aktív lesz (pl. ráklikkelsz, rámész tabulátorral), az onblur pedig amikor inaktív lesz. Továbbá kisérletezhetsz az onchange eseménnyel is, ez akkor fut le, ha változik az űrlapelem értéke, vagy elveszíti a fókuszt. (Utóbbiban nem vagyok 100%ig biztos). Ezt úgy értsd, hogy pl. egy szövegdoboznál minden egyes betű beírásakor/törlésekor le fog futni. Pl. jelszó beírásnál ezzel tudod látványosan ellenőrizni, hogy elég hosszú-e a jelszó.
(alapból piros x mellette, onchange-nél meg adott feltételek esetén lecseréled zöld pipára vagy visszacseréled piros x-re)"Az onsubmit alapvetően nem függvény, hanem egy esemény, ami akkor hívódik meg, amikor az adott űrlapot elküldöd."
Bakker, tényleg.
Némi ActionScript tudás után erre rá kellett volna jönnöm. 
A leírásod alapján nekem úgy tűnik, hogy a JS hasonlít az AS-re, mert eseményvezérelt, vagy hogy szokás szépen mondani.
Köszi a infókat, szerintem már menni fog.
-
Bici
félisten
Sziasztok!
Egy regisztrációs űrlap kitöltésének helyességét szeretném ellenőrizni JS-el.
Egyrészt figyelni akarom, hogy a kötelező mezőkben van-e adat, másrészt pedig bizonyos mezőkbe csak a megengedett karakterek mehetnek (pl felhasználónévhez csak angol kisbetű, telefonszámhoz csak szám, stb.).Erre tudtok valami jó kis leírást? Netán példaprogit?
Guglizok folyamatosan, de csak részletekben találtam eddig infókat.
Nem csak az érdekel, hogy hog ylehet megcsinálni, hanem hogy hogy érdemes.
Egyébként egy sima Form-ról van szó, és azt már tudom, hogy az "onSubmit" fv.-nyel kell megoldani.Köszi!
Új hozzászólás Aktív témák
-
Fórumok
PROHARDVER! - 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! BlogokMobilarena - mobil fórumok
Okostelefonok Mobiltelefonok Okosórák Autó+mobil Üzlet és Szolgáltatások Mobilalkalmazások Tartozékok, egyebek Mobilarena 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
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Honor Magic7 Pro - kifinomult, költséges képalkotás
- exHWSW - Értünk mindenhez IS
- Forza sorozat (Horizon/Motorsport)
- Milyen autót vegyek?
- Álláskeresés, interjú, önéletrajz
- Fejhallgató erősítő és DAC topik
- A Linux megnégyszerezte magát a Steamen — a Microsoft ismét ígérget
- BestBuy topik
- Nintendo Switch 2
- További aktív témák...
- 24 magos AMD Threadripper alapú munkára kiváló félgép, 128GB RAM-mal
- HP ZBook Fury 15 G7 i7-10850H 32GB 512GB SSD Quadro T2000 4GB FHD HUN bill, szép állapotban eladó
- Eladó MacBook Pro 16,1 2019 CTO
- új 0 km es garanciás lenovo loq rtx 5050 8gb
- Eladó teljesen újszerű karcmentes Samsung Galaxy Watch Ultra
- HIBÁTLAN iPhone 14 128GB Blue -2 ÉV GARANCIA - Kártyafüggetlen, MS5403
- BESZÁMÍTÁS! AsRock H510M i5 10500 32GB DDR4 512GB SSD ARC B570 Zalman S2 TG Adata 600W
- Bontott Bosch Smart Home Intelligens radiátor termosztát II / 12 hó jótállás
- BESZÁMÍTÁS! Sony PlayStation 4 PRO 1TB fekete játékkonzol extra játákok garanciával hibátlan működés
- AKCIÓ! Gigabyte B650M R7 8700F 64GB DDR5 1TB SSD RTX 5070 Ti 16GB Lian LI LANCOOL207 ADATA 850W
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest








). Komolyra fordítva a szót, tényleg más is akarja még olvasni a kódod, ne adj isten módosítani, olyankor jól jön ha "self-descriptive" a kódod.




