Hirdetés
- Samsung Galaxy Watch6 Classic - tekerd!
- Vivo X200 Pro - a kétszázát!
- MIUI / HyperOS topik
- Kezünkben a OnePlus 15 és az Oppo Find X9-ek
- Xiaomi 15T - reakció nélkül nincs egyensúly
- Samsung Galaxy A54 - türelemjáték
- Szemtelenül olcsó lett a Nubia Fold
- One mobilszolgáltatások
- Bemutatkozott a Poco X7 és X7 Pro
- Samsung Galaxy S21 Ultra - vákuumcsomagolás
-
Mobilarena
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
-
válasz
lanszelot
#8464
üzenetére
illetve ha van fent python, akkor a gyökérkönyvtárból ez kell kiadni, hogy indíts egy egyszerű webszervert:
python -m http.server 8000
vagy ha vant fent php a gépen, akkor php -S localhost:8000
és a http://localhost:8000/ címen kiszolgálja az aktuális könyvtárat. -
Elég csak letöltés után dolgozni rajta (1),vagy szeretnéd ezt a letöltött json-t session-ök között is tárolni (2)?
(1) - XHR-rel lekéred egy változóba (vagy akár egy rejtett textarea-ba) és dolgozol rajta
(2) - local storage - az (1)-ben letöltött adatot nem csak egy változóba teszed, hanem larakod local storage-ba is.Ha jól rémlik 105 MB/origin (szerver) a max tárolható adatmennyiség, ami böngészőfüggetlen. Illetve még ott van az IndexedDB. -
;TLDR - van API ami visszaadja, de nem támogatott minden környezetben (Mac, iOS, Firefox, IE). IP alapján lehet még esetleg vélelmezni:
Privát IP tartomány: wifi
- 10.0.0.0/8
- 172.16.0.0/12
- 192.168.0.0/16
Minden más (ISP és publikus): mobilnethttps://stackoverflow.com/questions/8598065/how-do-you-detect-3g-vs-wifi-connection-on-mobile-safari
-
Szvsz célszerű három különböző méretű fájllal dolgozni, hogy melyik jön le az adott időn belül (pl 3 sec): 10 kB, 100 kB, 1 MB
Ez alapján be tudod lőni a sebességet. Ha valamelyik nem jön le a kért időn belül akkor az annál egyel kisebb sebességet választod (és a következővel meg sem próbálkozol).
De lehet más módszerrel is próbálkozni (pl websocket és fix méretű (random) payload és azt nézed meg, hogy adott idő alatt mennyi csomag jön át). -
Ez a fajta asszociatív tömb nem létezik JS-ben, a legközelebbi az egy objektum, aminek string paraméterei vannak (ahogy át is jön json-ban). Ez nem tömbbe kell beleerőszakolni, hanem meg kell tartani objektumnak és stingként kell hivatkozni az elemekre:
const json = '{"0":0, "5":0}';
const obj = JSON.parse(json);
console.log(obj[0]);
console.log(obj[5]);
console.log(obj);
obj[8] = 1
console.log(JSON.stringify(obj));
> 0
> 0
> Object { 0: 0, 5: 0 }
> "{"0":0,"5":0,"8":1}"
A számból álló kulcsokat tényleg nem szereti JS, mert az objektum kulcsai csak stringek lehetnek. -
Mármint jó kérdés még mindig hogy mit és hol szeretnél csinálni. Ugye a php a szerver oldalon fut, js meg - általában - kliens oldalon. Szóval minek mit kellene hogyan összeállítania?
1) kliens <--- te szervered <--- távoli szerver
2) kliens <-+- te szervered
|
+-> távoli szerver -
válasz
sztanozs
#7847
üzenetére
fn helyesen
function encodeHTML(e){return e.replace(/./g,function(e){return"&#"+e.charCodeAt(0)+";"})}bár ez széttöri az emoji-kat (és vsz más komponens karaktereket is)
igazázából lehet elég ez is:function encodeHTML(e){return e.replace(/[<>]/g,function(e){return"&#"+e.charCodeAt(0)+";"})} -
document.write(BA);
Ez felülírja az egész dokumentumot. Keress egy HTML objektumot (pl egy DIV-et) vagy illessz be valahova az oldalba, és add át az innerHTML értékének a kapott adatot (legjobb, egyébként ha fogadó oldalon dobsz rá egyescape-ethtml konvertert*, hogy véletlenül se lehessen szkriptet beinjektálni az oldalba).*
function encodeHTML(e){return e.replace(/[.]/g,function(e){return"&#"+e.charCodeAt(0)+";"})} -
válasz
radi8tor
#7842
üzenetére
Egy redirect egy oldalra, ami vsz valami droppert tartalmaz.
<meta http-equiv="refresh" content="1;url=https://****.com/base64_encoded_id">Nem, ez egy Live.com phishing site:
Potentially malicious activity detected
Disclaimer: These verdicts should be used to detect potentially malicious websites, not as a final verdict!
urlscan - Score: 100
Categories: phishing
Tags: phishing
Phishing against: Microsoft (Consumer) -
válasz
Tomi_78
#7741
üzenetére
Szia!
A requestAnimationFrame lényege, hogy mindenhol ugyanolyan sebességgel fusson. Az, hogy ott lassabban futott vsz csak valami lokális ok miatt lehetett (pl sok tab, máshol is használta valami aktívan a grafikus drivert, vagy valami egyéb). Az is lehet, hogy nem volt lassabb, csak voltak olyan dolgok, ami miatt más volt a limitáló és amiatt tűnt lassabbnak.
írasd ki a képernyő szélére az fps-t, és látni fogod, hogy tényleg lassabb-e. -
válasz
hiperFizikus
#7699
üzenetére
-
válasz
instantwater
#7670
üzenetére
-
válasz
K1nG HuNp
#7660
üzenetére
Ami még eszembe jutott az a shared secret.
Szintén PBKDF2-SHA2 funkcióba beledobod a felhasználónak generált azonosítót (256 bit random , vagy szintén PBKDF2-SHA2-256) és ezt sózva a shared secrettel újragenerálva.
A QR kódba kiírod az elsőt - UserID (256 bit) és a másodikat PBKDF(UserID, Shared secret - mint Salt) (szintén 256 bit)
Ez egy 2*32 bájtnyi adatot fog generálni, ami Version 7 High level error correctionbe épp belefér.Ez a modell offline is ellenőrizhető, ha a shared secret és az ellenőrzést végző kód fel van telepítve az olvasóra (pl RPi). Persze az offline-nal az a gond, hogy ugyanazzal a kóddal többen is be tudnak menni, hacsak nem csinálsz lokális hálózatot és érvényteleníted a már beolvasott kódokat (de ennyi erővel már lehet neted is)...
-
válasz
K1nG HuNp
#7658
üzenetére
Ha a végén nálad fut be minden, akkor az oauth-hoz generálsz egy megfelelően hosszú random számot (vagy hash az emailből akár, megfelelő PBKDF2-SHA2 key generation funkcióval). A QR-nek csak a letárolt számot kell tartalamaznia, és nem tud vele visszaélni se a szervező, se nem lehet rosszindulatú usernek legenerálni, meglevő emailcím alapján.
Persze ehhez kell, hogy a beléptetéskor online tudják ellenőrizni a kódot.Ha offline kell, akkor azt tudod csinálni, hogy digitális aláírással aláírod az azonosítót, amit a szervező ad, és ezt a "csomagot" rakod át QR-be - viszont ez általában meghaladja egy praktikus QR méretét (Version 10).
-
válasz
instantwater
#7641
üzenetére
VB-ből jött, ott nem kell () a fv végére, ha szubritinként van hívva (eldobjuk a visszatérési értéket)...
hiperFizikus - ha nem működik úgy, ahogy szeretnéd, akkor hiba van benne. akárhogy is csűröd-csavarod.
-
válasz
hiperFizikus
#7621
üzenetére
bmp támogatja, csak nem rgb, hanem arbg színteret kell használni (és legalább egy paint-NET-et, nem sima windows paint-et).
Ja és amúgy a full tömörítetlen bmp-nél bármi jobb... -
válasz
hiperFizikus
#7619
üzenetére
Használj olyan képet, ami alapból támogatja az átlátszóságot (gif, png), a jpg képek nem ilyenek.
-
válasz
Tomi_78
#7603
üzenetére
Nem ez nagyjából
setInterval(17)-tel egyenlő, de
- ha a szkripted futása több, mint 16 ms, akkor összetorlódnak az eseményeksetInterval-nál, míg arequestAnimationFramethrotlingol
- ha háttérben van a canvas, asetIntervalakkor is triggerel, míg arequestAnimationFramenem (nem eszi feleslegesen az erőforrásokat). Ezzel ellentétben a háttérben futósetIntervalszépen torlódik, és Ph-reklámokban is látható "rohanással" éri utol magát, amikor újra előtérbe kerül.
- arequestAnimationFramevisszaad egyrequestID-t, amivel könnyebb szüneteltetni az animációt, mint asetInterval-lal.
- arequestAnimationFrame-ben regisztrált callback megkapja az aktuális időt (ha van a callback függvénynek argumentuma), így nem kell a függvényben szenvedni az előállításával -
válasz
hiperFizikus
#7601
üzenetére
A setInterval csak fallback-nek jó, ha nincs már más lehetőség. Ne legyél már ennyire a magad ellensége...
-
-
válasz
hiperFizikus
#7583
üzenetére
Ezt nézd még meg, ez is elég jól elmagyarázza a lényegét:
https://blog.teamtreehouse.com/efficient-animations-with-requestanimationframe -
válasz
hiperFizikus
#7583
üzenetére
Ahogy írja is a tutorialban, ne
setInterval-t használj, hanemrequestAnimFrame-et. setInterval csak ott kell, ahol egyáltalán nincs más lehetőség. -
válasz
hiperFizikus
#7576
üzenetére
Csekkdiszáut:
https://cloudinary.com/blog/creating_html5_animations
https://medium.com/@huiwang339/html-canvas-animation-with-javascript-1956426287d3
Plusz Canvas elejétől a végéig (az eleje végéig):
https://www.html5canvastutorials.com/tutorials/html5-canvas-element/ -
válasz
hiperFizikus
#7518
üzenetére
-
válasz
hiperFizikus
#7426
üzenetére
Persze, felteszed valami crowdfunding oldalra, és várod, hogy dőljön a pénz.
-
válasz
hiperFizikus
#7422
üzenetére
Ha nem tudod, hogy mi az amiért fizetnének, akkor nem tudsz belőle árut csinálni.
Ha fizikailag érdekel a dolog (hogy lehetne teríteni), akkor írj hozzá némi körítést és fizetős hozzáféréssel tedd fel egy internetről elérhető oldalra (de vigyázz, mert ha kapós lesz, akkor lopni is fogják).
-
válasz
hiperFizikus
#7416
üzenetére
Ilyen módon csak lokálisan futó JS/VBS szkriptek férnek hozzá. Weboldalról letöltött szkriptek esetében ez biztonsági okból le van tiltva.
Ezt külön engedélyezett JAVA Applettel lehetett korábban pl megcsinálni, de mára már ez is tiltva van. -
válasz
hiperFizikus
#7414
üzenetére
Nincs ilyen formája. Használhatsz változót, amit beállítva kilép a külsőből is. Másképp, bár nem szép, de a dupla ciklust tedd bele functionba, és lépj ki belőle return-nel.
-
válasz
Nagyzoli27
#7400
üzenetére
pontosvessző nem hiányzik a végéről?
-
válasz
hiperFizikus
#7383
üzenetére
Escape-elni kell, mert néhány karakternek a reguláris kifejezésben saját jelentése van, pl.:
\ escape karakter. bármely karakter| vagy-vagy kifejezés^ sor eleje (illetve karakter szekvenciában negálás)$ sor vége[ karakter szekvencia eleje] karakter szekvencia vége( regex capturing-group eleje) regex capturing-group vége{ "többszörösítő" módosító eleje} "többszörösítő" módosító vége* nulla vagy többszöri előfordulás? nulla vagy egyszeri előfordulás+ egy vagy többszöri előfordulásezeket mind escape-elni kell
\-el -
válasz
hiperFizikus
#7376
üzenetére
Sztorno az előző, azt hittem valamiért, hogy php topicban vagyok (meg a kérdést is egy kicsit félreértettem)

Szóval Javascriptben csak az objektumok kerülnek át referencia szerint, egyszerű típust nem lehet úgy átadni.
Kb így lehet megkerülni:
var e4 = {Value: 0};
function alma(a1,b2,c3){
b2.Value = 456;
return 123;
};
alma(4,e4,8);
alert(e4.Value); -
válasz
hiperFizikus
#7376
üzenetére
var e4 = 0 ;
function alma(a1,b2,c3){
global e4;
b2 = 456;
e4 = b2;
return 123;
};
alma(4,e4,8);
alert(e4); -
válasz
hiperFizikus
#7372
üzenetére
Azért mert azzal az
xa1[4] = undefined;utasítással létrehoztad az 5. elemet és abba tettél egyundefined-ot.
Ha szeretnéd törölni az elemet, akkor
- utolsó elem törlésexa1.pop();
- tetszőleges elem (ix) törlésexa1.splice(ix, 1); -
válasz
Nagyzoli27
#7341
üzenetére
F12
-
pure http post és get ha kell visszaigazolás, különben mehet webrtc-n (UDP), de nem biztos, hogy megkapod az üzenetet. Persze vacakolhatsz sima tcp-vel is, de ki tudja meddig lesz támogatott (és az IE láz óta nem láttam olyan peremfeltételt, hogy kizárólag egy böngészőt lehet használni)
-
-
válasz
sztanozs
#7145
üzenetére
de inkább célszerű helyesen indexelni és rögtön a másodiktól kezdeni:
for(var j = 1; j < cellLength; j+=2) {Mondjuk a ciklusban simán felülírod a második értékkel az elsőt.
Inkább így kellene:cx = 0
for(var j = 0; j < cellLength; j+=2){
var cellVal[cx] = oCells.item(j).innerHTML;
console(cellVal[cx]);
cx++;
} -
válasz
Hujikolp
#6882
üzenetére
Átírod a 100-at nagyobbra. Ha máshonnan tölti be az oldal a JS-t és a forrást nem tudod szerkeszteni, akkor sok mindent nem tudsz csinálni.
Esetleg ha tudsz JS-et beszúrni az oldalba, akkor úgy felül tudod definiálni avalidateqsi_form1()függvényt és oda beírod a saját értékedet. -
válasz
gepelek
#6866
üzenetére
Az internetes boltok nem (és mások sem) szeretik, ha iframe-ben jelenítik meg őket, mert könnyen átejthetők a tartalmat nézegetők némi fix overlay divek segítségével.
Content Security Policy: [link]
Ez van az oldal headerjében:content-security-policy: frame-ancestors 'self'; -
-
válasz
kw3v865
#6771
üzenetére
igazából a jquery nem ad vissza semmit (azonnal) - a success:-ben kellene azt feldolgoznod - ezért hívják ajax-nak a lekérdezést ("Asynchronous JavaScript + XML")
illetve ha async: false - ot állítasz be, akkor vár (blokkol) amíg visszatér a lekérés, és vissza tudod adni így:
return jQuery.ajax...Viszont ez jQ v1.8 óta deprecated.
-
válasz
PumpkinSeed
#6488
üzenetére
Itt van egy implementáció - célszerű átnézni a részleteket, szerintem ez is ajax alapon működik: [link]
-
válasz
AD4MINATOR
#6486
üzenetére
Google 1st
Szóval pac-ból nem tudod megoldani, de a wpad szerver adhat más más pac fájlt (ha nem közvetlenül a pac fájlt adja, hanem - mondjuk phpval - lekezeli a kérést és más más fájlt ad user agent alapján). -
A JS-t viszont most tolják minden platformra, boldog-boldogtalan abban fejleszt, a PHP pedig mindig is a szerveren maradt.
Ez amúgy szerintem a JS egyik nagy problémája.
Mivel a JS egy (jelentős) része kliens oldalon fut és lehetőség sincs a forrás védelmére vagy validálására, így maga a JS, mint platform rendkívül sebezhető. -
válasz
Mr Dini
#6340
üzenetére
syntetic sugar:
var DATA = '';
function getPage(url) {
http.request.get(url).then(function (response) {
DATA = response;
console.log(response);
})
}
getPage('http://akarmi/');
while(DATA === '');
alert(DATA);Amúgy nem értem miért nem lehet az egész feldolgozást a then-be rakni, azt kész...
Új hozzászólás Aktív témák
- Formula-1
- Counter-Strike: Global Offensive (CS:GO) / Counter-Strike 2 (CS2)
- Postal: Bullet Paradise - A játék amit bejelentettek, majd el is kaszáltak
- Samsung Galaxy Watch6 Classic - tekerd!
- Építő/felújító topik
- Sony MILC fényképezőgépcsalád
- Vivo X200 Pro - a kétszázát!
- Fejhallgatós találkozó
- Debrecen és környéke adok-veszek-beszélgetek
- MIUI / HyperOS topik
- További aktív témák...
- LG 32UN880K - 32" IPS ERGO / 4K UHD / 60Hz 5ms / DisplayHDR 400 / USB Type-C / AMD FreeSync
- LG 55G4 - 55" OLED evo - 4K 144Hz & 0.1ms - MLA Plus - 3000 Nits - NVIDIA G-Sync - FreeSync Premium
- LENOVO Legion Pro 5 16IRX8 - 16" WQXGA 240Hz - i5-13500HX - 16GB - 1TB - RTX 4060 - 9 Hó garancia
- HIBÁTLAN iPhone 15 Pro Max 256GB Blue Titanium -1 ÉV GARANCIA -Kártyafüggetlen, 100% Akkumulátor
- HIBÁTLAN iPhone 13 mini 128GB Pink -1 ÉV GARANCIA - Kártyafüggetlen, MS3050, 100% Akkumulátor
Állásajánlatok
Cég: BroadBit Hungary Kft.
Város: Budakeszi
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest





