Hirdetés

2024. május 2., csütörtök

Gyorskeresés

Téma összefoglaló

Téma összefoglaló

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

LOGOUT.hu

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

Összefoglaló kinyitása ▼

Hozzászólások

(#10001) lanszelot


lanszelot
addikt

Hello,
Csak hobbiként csinálgatom.
[link] Ezt az api-t AJAX lekéréssel használom.
Ha letöltöm a json file-okat, akkor hogy tegyem fel a tárhelyemre, hogy ugyanúgy ki tudjam kérni js-el?

Php json lekérést tudom. Azért kérdezem hogy megértsem hogy van az az api. Mert ha simán feltöltöm a json-t, akkor azt nem tudom lekérni js-el.

(#10002) martonx válasza lanszelot (#10001) üzenetére


martonx
veterán

Pedig simán mennie kellene. Elég simán felmásolni a json file-okat, és utána fetch api-val lekérni.

Én kérek elnézést!

(#10003) lanszelot válasza martonx (#10002) üzenetére


lanszelot
addikt

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

Én AJAX -al kérem le 'GET' és objektumként kezelem.
Azzal nem megy.

Fetch api-t már sokszor próbáltam megérteni, de nem megy.
Valami hiányzik nekem. Emiatt azt nem tudom hogy kell.

(#10004) Panhard válasza disy68 (#10000) üzenetére


Panhard
tag

Csak az a baj, hogy node-ot nem tudok feltölteni, illetve futtani tárhely szolgáltatón.

(#10005) sztanozs válasza Panhard (#10004) üzenetére


sztanozs
veterán

Es a tarhelyszolgalto szerveren van a soros port amit el akarsz erni?

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

(#10006) Panhard válasza sztanozs (#10005) üzenetére


Panhard
tag

Nem. Nyilván a kliens gépen lévő soros portot.

(#10008) lanszelot válasza martonx (#10002) üzenetére


lanszelot
addikt

Ezt a hibát írja:
"has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled."

Nem tudom mit csinálok rosszul.

fetch('./json/1975-03-06T03_00_00.json')
.then(function(response) { return response.json(); })
.then(function(obj) {
console.log(obj);
});

[ Szerkesztve ]

(#10010) sztanozs válasza Panhard (#10006) üzenetére


sztanozs
veterán

Akkor nyilvan a sajat gepen kellene futnia a nodejs szervernek, nem a kiszolgalon.

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

(#10011) Panhard válasza sztanozs (#10010) üzenetére


Panhard
tag

NodeJs szervernek nem kell futnia sehol sem. Azért kérdeztem, hogy kliens oldalról javascriptben vagy bárhogy van-e erre megoldás.

(#10012) lanszelot válasza Rat.Sand (#10009) üzenetére


lanszelot
addikt

Ez a link egy könyv ajánló. :B

Próbáltam utána nézni, de erre írtam hogy nem értem. #10003

(#10014) lanszelot válasza Rat.Sand (#10013) üzenetére


lanszelot
addikt

Közben sikerült ajax kikéréssel megoldanom.
A rövidített valtozat nem működött.
Így beírtam a teljes változatot és úgy működik.

Bocsánat nem tudom másként írni, youtube rol tanultam és ott ez a két verziót mutatták ajax kikérésnek.
Lényeg hogy sikerült :)

Nagyon szépen köszönöm mindenkinek a segítséget :R

(#10015) disy68 válasza Panhard (#10011) üzenetére


disy68
aktív tag

a böngésző javascript api-ján keresztül a korábban linkelt (#10007Rat.Sand) api (Web Serial API), ami esetleg használható, ez egy experimental feature chromium alapú böngészőkhöz

itt egy minta hozzá: https://github.com/svendahlstrand/web-serial-api/tree/master

“Yeah, well, you know, that’s just, like, your opinion, man.” — The Dude

(#10016) Panhard válasza disy68 (#10015) üzenetére


Panhard
tag

Igen, nézem, próbálom...

(#10017) e.vit


e.vit
csendes 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"; }

(#10018) nevemfel válasza e.vit (#10017) üzenetére


nevemfel
senior tag

if(sun.style.display = "block" && sec < 30 ){

helyett

if(sun.style.display === "block" && sec < 30 ){

és így tovább.

Forget your troubles, c'mon get happy

(#10019) e.vit válasza nevemfel (#10018) üzenetére


e.vit
csendes tag

Köszönöm szépen!

(#10020) laracroft


laracroft
aktív 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

[ Szerkesztve ]

(#10021) nevemfel válasza laracroft (#10020) üzenetére


nevemfel
senior tag

<!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.

[ Szerkesztve ]

Forget your troubles, c'mon get happy

(#10022) laracroft válasza nevemfel (#10021) üzenetére


laracroft
aktív tag

Köszi, igen ezt elfelejtettem...
köszi ;)

(#10023) lanszelot


lanszelot
addikt

Hello,

{
"1900" : ["1900 Joan of Arc", "1901 Bluebeard", "1902 A Trip to the Moon", "1903 The Great Train Robbery", "1904 The Untamable Whiskers", "1905 The Nihilist", "1906 The Story of the Kelly Gang", "1907 First Prize in Cello", "1908 The Thieving Hand", "1909 Those Awful Hats"]
}

Ez egy json file.
Hogyan tudom kikérni ezt:"1902 A Trip to the Moon" ?

Ajax kikérés, majd var posts = JSON.parse(xhr.responseText);
és innen nem megy tovább
posts.1900[2]
Ez nem működik.
Tudom, hogy az 1900 miatt ,de nem tudom hogyan kell.
posts[1900][2]
vagy
posts["1900"][2]

Melyik a helyes, vagy mindegy?

"for" ciklusba hogy rakom be hogy mind kiírja?

[ Szerkesztve ]

(#10024) martonx válasza lanszelot (#10023) üzenetére


martonx
veterán

Ránézésre az utolsó jónak tűnik. De böngésző konzolban pillanatok alatt ki tudod magad próbálni.

Én kérek elnézést!

(#10025) lanszelot válasza martonx (#10024) üzenetére


lanszelot
addikt

Jónak mind a kettő jó.
Azért kérdeztem melyik helyes?

És hogy hogy kérem ki minden elemét for ciklussal?

(#10026) cattus válasza lanszelot (#10023) üzenetére


cattus
őstag

posts["1900"].forEach(post => console.log(post))

Do the thing!

(#10027) lanszelot válasza cattus (#10026) üzenetére


lanszelot
addikt

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

A forEach -el nagyon nem vagyok kibékülve.
Valahogy képtelen vagyok megérteni. :B

Hibát dob, de nem tudom miért, mert forEach -hez nem értek.
"posts is not iterable at xhr.onreadystatechange"

Mivel nem csak 1900 van, hanem egészen 2022 -ig megy, így gondolom 1900 helyére másik for ciklussal dobok évszámot.

(#10028) lanszelot válasza lanszelot (#10027) üzenetére


lanszelot
addikt

Valószínű valamit elírhattam, mert így működik: [link]

(#10029) Ispy


Ispy
veterán

Valaki el tudna igazítani...

Van egy térkép api, amit megcsináltam, jól is megy. A frontendbe egy js sdk-t kell használni, ami magát a térképet megjeleníti. Viszont az inicializálás során meg kell adni az api keyt, amivel nekem gondjaim vannak, hiszen az így rohadtul nem secret, hogy ki lehet olvasni.

Mi ilyen esetben a megoldás? Hogyan tudom úgy megadni az api keyt, hogy az ne legyen látható? Hiszen ezt az egészet nem tudom backenden kezelni, mert ez a frontendhez kell.

Az api dokban egyébként a minta kódokban simán megadja a keyt, azt kész, ami elég fura. Vagy nem?

[ Szerkesztve ]

"Debugging is like being the detective in a crime movie where you're also the murderer."

(#10030) Bzozoo válasza Ispy (#10029) üzenetére


Bzozoo
tag

Melyik API-ról van szó?

(#10031) lanszelot válasza Ispy (#10029) üzenetére


lanszelot
addikt

Általában az api -hoz nem elég a key.
Engedélyezni kell mit akarsz lemérni.
Tehát max azt tudja elérni vele amit te, semmi többet.

(#10032) Ispy válasza Bzozoo (#10030) üzenetére


Ispy
veterán

Tomtom map

"Debugging is like being the detective in a crime movie where you're also the murderer."

(#10033) Ispy válasza lanszelot (#10031) üzenetére


Ispy
veterán

Az api oké, az megy, lekérem a távolságot és visszakapom a koordinátákat. De a megjelenítéshez az sdk kér api keyt, amit így ki lehet hekkelni a frontendből, ami nem túl egészséges. Ez egy kész fejlesztés, már vagy 2 éve csináltam, használják is, igaz eddig csak .net webviewban volt megjelenítve, szóval nem igazán gond ott, mert sem a sourcehoz, sem a linkhez nem fér hozzá senki. De ha webes megoldást szeretnék ott ez egy security risk. És nem tudom mi erre az ipari szabvány megoldás.

Itt egy példa, ha megnézed a sourcet.

[ Szerkesztve ]

"Debugging is like being the detective in a crime movie where you're also the murderer."

(#10034) lanszelot válasza Ispy (#10033) üzenetére


lanszelot
addikt

js-el nem tudom, de php val be tudod védeni, mint a jelszót.
Ha jól értem a feladatot.

(#10035) Bzozoo válasza Ispy (#10032) üzenetére


Bzozoo
tag

Regisztráltam.
A dashboardon van egy olyan rész, hogy security, allowed domains. Oda be kell írni a domaineket, ahol használni akarod és akkor hiába akarja más használni más domainnel, az nem fog működni.

[ Szerkesztve ]

(#10036) Ispy válasza Bzozoo (#10035) üzenetére


Ispy
veterán

Uh, köszi, kipróbálom.

"Debugging is like being the detective in a crime movie where you're also the murderer."

(#10037) Bzozoo válasza Ispy (#10036) üzenetére


Bzozoo
tag

Minden bizonnyal működni fog

(#10038) lanszelot


lanszelot
addikt

Egy json file-ba írtam az adatokat.

{
"elso" : "www.elso.hu",
"masodik" : "www.masodik.hu",
"elso" : "www. harmadik.hu",
"masodik" : "www.negyedik.hu"
}

A gond az, hogy többször van ugyanaz a név, és nem változtathatom meg.
Viszont a linkek így nem működnek.
Hogyan módosítsam?
A gond a kikérés nagyon megváltozik, ha pl tömbbe rakom az első kettőt és masikba a második kettőt.

Tudom, nem jó a kérdés, de ha tudnám a kérdést, akkor rá tudnék keresni, vagy a válasz is eszembe jutna.

[ Szerkesztve ]

(#10039) hiperFizikus válasza lanszelot (#10038) üzenetére


hiperFizikus
aktív tag

És ha megfordítanád ?
{
 "www.elso.hu" : "elso", 
 "www.masodik.hu" : "masodik",
 "www. harmadik.hu" : "elso",
 "www.negyedik.hu" : "masodik"
}

A gázt is és a féket is egyszerre nyomni nem menő dolog !

(#10040) lanszelot válasza hiperFizikus (#10039) üzenetére


lanszelot
addikt

Az azért nem jó, mert a linket kell kikérnem.
Illetve több mint 1000 tételt kellene átírnom.

Arra gondoltam, hogy object az object -ben az nem borítja meg nagyon a kikérést. Viszont azzal is rengeteg munka lenne mire átírom. 10 -esével objectbe kellene rakni.

Én toltam el, nem gondolkodtam előre :B

(#10041) hiperFizikus válasza lanszelot (#10040) üzenetére


hiperFizikus
aktív tag

Nincs mese, rosszul csináltad, át kell írnod, de nem kézzel hanem egy kisebb külön script-el !
:N
Mivel az "eltolásod" rendszeres lehet, ezért egy külön kisebb script programmal hamar végezhetnél vele .
:K
Ajándék képen, küldjél nekem privátban valami ami szerinted jobb linkeket ♥
;)

A gázt is és a féket is egyszerre nyomni nem menő dolog !

(#10042) lanszelot válasza hiperFizikus (#10041) üzenetére


lanszelot
addikt

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

A 3ikat nem értem. Szívesen küldök, de nem értem mit. :B

(#10043) hiperFizikus válasza lanszelot (#10042) üzenetére


hiperFizikus
aktív tag

hát pl. YouTube linket, hosszabb magyar nyelvű sci-fi linket, programnyelvekkel kapcsolatos linket, írásokkal kapcsolatos linket, vagy bármi szórakoztató-érdekes linket .
:D

A gázt is és a féket is egyszerre nyomni nem menő dolog !

(#10044) Mr. Y


Mr. Y
senior tag
LOGOUT blog

*facepalm* :W :W :W
Ha más nem, használj indexelt lekérést. JSON-ben megteheted.

But who is watching the guardians?

(#10045) cattus válasza lanszelot (#10038) üzenetére


cattus
őstag

Jól értem hogy a JSON-ön belül több kulcs (pl. elso) többször szerepelhet? Szükséges neked az hogy ezen kulcs alapján érd el a linkeket, vagy megfelel más is (pl. tömbben index alapján?). Mi alapján rakod össze a JSON-t?

Do the thing!

(#10046) martonx válasza lanszelot (#10038) üzenetére


martonx
veterán

Hibásan rakod össze a json-t. Előbb talán azt írd le, hogy mire lenne való a json, hátha jobban tudnánk segíteni.

Én kérek elnézést!

(#10047) lanszelot válasza cattus (#10045) üzenetére


lanszelot
addikt

Nagyon szépen köszönöm a válaszokat :R

Fentebb írtam, hogy object az objectben megoldást választottam.
Így nem kellett annyira átírni a kikérést.
1 óra alatt átírtam, így már tökéletesen működik.

{
1 : {"elso" : "www.elso.hu",
"masodik" : "www.masodik.hu"}
2 : {"elso" : "www. harmadik.hu",
"masodik" : "www.negyedik.hu"}
}

(#10048) Bzozoo válasza lanszelot (#10047) üzenetére


Bzozoo
tag

Akkor már rakhattad volna tömbbe is és nem kellene külön számozni
[
 {"elso" : "www.elso.hu","masodik" : "www.masodik.hu"}, 
 {"elso" : "www. harmadik.hu","masodik" : "www.negyedik.hu"}

(#10049) lanszelot válasza Bzozoo (#10048) üzenetére


lanszelot
addikt

Nagyon szépen köszönöm a választ.

A tömb kikéréséhez nagyon át kellett volna írnom.
Míg így csak két helyre kellett beillesztenem a változót ami már amúgy is létezett.
Az volt a lényeg hogy ne kelljen sok mindent átalakítani. Plusz új változó, és annak kezelése.
Igaz így a listát kellett nagyon átírnom :B
Egyik kutya másik... :D

(#10050) sztanozs válasza lanszelot (#10049) üzenetére


sztanozs
veterán

Azt ugye vagod, hogy a ket megoldas ekvivalens (azon kivul, hogy a tomb indexeles nullatol kezdodik)?

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

Copyright © 2000-2024 PROHARDVER Informatikai Kft.