-
PROHARDVER!
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
-
Karma
félisten
válasz
Teasüti #3727 üzenetére
Ha már úgyis redundáns amit írtam, hadd egészítsem ki azzal, hogy a slice(0, -1) tisztább, szárazabb, biztonságosabb; de elsősorban jobban olvasható függvény ugyanerre a célra.
-
Karma
félisten
válasz
Teasüti #3723 üzenetére
Hát, az biztos probléma, hogy a példakódodban a lengthedik karaktert akarod kivenni a stringből, csakhát közben a betűket a JavaScript (hasonlóan egy csomó más nyelvhez) 0-tól length-1-ig indexeli.
Másrészt nem kell a Number konstruktor, mert a length mindig szám.
Lassú voltam -
Sk8erPeter
nagyúr
válasz
Teasüti #3719 üzenetére
Tegnap hajnalban valszeg jóval felháborodottabbnak tűnő hsz.-t sikerült írnom, mint amilyet akartam, vagy amilyet érdemes lett volna szánnom neked.
Egyrészt késő/korán volt, másrészt számomra furcsa ez az "arra nem akarok válaszolni"-stílus, én ha segítséget kérek, akkor minden hsz.-re reagálok, akár csak egy böffentés erejéig is, nem a saját fáradtságomra hivatkozom, hogy legalább a segítségnyújtó vágja, hogy igen, átjött az üzenet, nem ignoráltam. Nem hinném, hogy "programozói attitűd" a szabadidő hasznos eltöltésének igénye (amúgy ha már kérdezted, nem vagyok "full time programozó"), ennek az általánosító jellegű kifordítása ("mindig olyan nagyra vannak az idejükkel [...] És elefántot csinálnak a bolhából, a konvenciókból") pedig meglehetősen vicces (véleménynyilvánítás a magas lóról, miközben eddig az ellenkezője igazolódott be
), ha ez igaz lenne, akkor nem kaptál volna már annyi segítséget itt a fórumon olyan kérdésekre, amelyeknek te is utánanézhettél volna Google barátod segítségével. Sztem nem konvenció (főleg nem programozói) az, hogy válaszolok a segítségnyújtónak (nem csak magamról beszélek), ez egyszerűen netikett.
De igazad van, tényleg nem volt érdemes így reagálni, felesleges volt az egészet felhozni, egyszerűen mások vagyunk.
Tegnap ezt dobta a gép, sorry. Peace!
Hogy valami hasznosat is írjak, a Sublime Text egy igen jó kis szerkesztőprogi a viszonylag kis erőforrás-igényűek közül. Persze ments folyamatosan kódoláskor. (Általában én nem szeretem bekapcsolni, de van autosave funkciója is emlékeim szerint.)
(#3716) Karma :
jogos, a magyarázat fentebb. -
Sk8erPeter
nagyúr
válasz
Teasüti #3713 üzenetére
"Arra... nem akarok válaszolni. Fáradt voltam hozzá akkor, és most is."
Aha, elgondolkodtató, hogy akkor a jövőben mennyire fáradjunk mi a neked adott válaszokkal. Hidd el, nekünk is időbe kerül másoknak válaszokat írogatni, nekünk is van munkánk, tanulnivalónk, magánéletünk, azt a pár percet sem kell, hogy rád szánjuk, amit esetleg tudnánk. Könyörgöm, kissé fordítva ülsz a lovon. Te akarsz segítséget, de úgy csinálsz, mintha te tennél szívességet. Sosem értettem az ilyen hozzáállást a fórumokon. Mintha itt valami fizetett segítőgépek ülnének a gép előtt, és egész nap várnák a segítési lehetőséget. Hát nagyon nem."Tasker milyen program? Írtam róla egy cikket. De röviden szólva éppen ezt tudja, amit te is írtál."
Látom sikerült felfogni a kérdés lényegét.JavaScriptben programozol hozzá, ezzel kapcsolatban, meg a környezettel kérdeztem.
"És ha nem jsFiddle-szerű helyeken szokás dolgozni, akkor hol?
Ti ajánlottátok nekem, hogy erre való..."
Ne szívassál már... Szerinted mi hol mondtuk, hogy a jsFiddle munkára való?Segítek, sehol. Arra való, hogy prezentálj demókat másoknak, megosszatok kódokat, meg együtt lehessen segíteni a másiknak abban, hogy egy célfeladatot hogyan lehet megoldani. Van változatkezelője, jól működik, valóban van kódszépítési lehetőség, ezzel a másik munkáját könnyíted meg, adott esetben sajátodat is, ha nincs valami normális programozási környezeted épp, de bakker, nem arra való, hogy a napi munkádat ott végezd.
A JSBin egyébként elég gyakran ment, ha már...
Egyébként nem azt mondtad, hogy más nyelvekben már programoztál? Akkor eddig hogyan? -
Sk8erPeter
nagyúr
válasz
Teasüti #3711 üzenetére
Valószínűleg szopóálarc. Nem szokás ilyen helyen dolgozni.
Amúgy ha válaszolnak neked, illik reagálni.
-
Karma
félisten
válasz
Teasüti #3709 üzenetére
Ez a kódrészlet feltételezi, hogy a fájl amit le akar tölteni a következőt tartalmazza:
<title>&&<</title>
Egyébként nem mérvadó. Hasonlóan kéne benne reszelni mint egy XML-ben, legalábbis elvileg - én még sose próbáltam ilyet korábban.
A this meg az XMLHttpRequest objektum.
-
Sk8erPeter
nagyúr
válasz
Teasüti #3706 üzenetére
"Nem irónia, tényleg így néz ki a kód."
Úristen, hát az kegyetlenül idétlen. Ez komoly, hogy így kódolsz? Még most szokj le erről, használj valami normális kódszerkesztőt, mert nem fogod átlátni a kódjaidat, most is átláthatatlan a bemásolt kód.
Tessék:
http://jsbeautifier.org/
Szépen indentálja a HTML- és főleg JS-kódokat is.
Ez alapján itt a kódod:
http://pastebin.com/zETLwnud
Kicsit másképp néz ki."[link] Itt is a result panelen van az eredmény."
Igen, de ne azt akard módosítani, hanem a kódot..."Ezt így ahogy van másoltam a HTML kóddal együtt, de nekem nem működött a pre.innerHTML sor (ugye az küldi a result-ra a kimenetet?)."
Nem az "küldi a resultra a kimenetet"... Kis félreértés van itt. A result egyszerűen csak a kód eredményét, kimenetét mutatja, ugyanúgy, mintha te összepakolnád az oldalt ezekből a különböző részekből, aztán megnyitnád a böngésződben, lefutna a kód, és kiadna valamilyen eredményt. Ugyanazt mutatja ez is.Van ez az elem a HTML-panelen:
<pre id="output">
Waiting...
</pre>Aztán van a JavaScript-panelen ez a rész:
var pre = document.getElementById('output');
ez itt egy globális változó lesz, az output id-val rendelkező elemet kérted le, tároltad a "pre" változóba. (mármint Karma tette ezt)
van aztán ez a sor:
pre.innerHTML = lat + ", " + lng;
ez egyszerűen annyit jelent, hogy módosítod a HTML-tartalmát a "pre" elemnek, ami az előbb látható output id-val rendelkező elem. Belerakod vesszővel elválasztva a "lat" és "lng" változók tartalmát. És kész.pre.innerHTML = textStatus;
Ez ugyanaz, csak itt a textStatus tartalmát pakolod bele (ez fog látszani a kimeneten is, mivel a "pre" egy látható elem, aminek a tartalma módosítva lett), ez az AJAX-kommunikáció során, hiba esetén meghívott callback-függvény, ez tehát annyit csinál, hogy egyszerűen megmutatja a válaszként kapott, hibaállapotról szóló szöveget a pre elemen belül."Nem hinném, hogy a mai 1+ ghz-es telefonoknak ez gondot okozhatna."
Tipikus rossz kódolási érv, a gányolások alkalmazásának alátámasztására. Ne így állj hozzá. És ha valaki nem 1+ GHz-es telefonnal nézi? Amúgy meg teljesen mindegy, mivel nézi, feleslegesen zabálni az erőforrásokat tök felesleges."function akármi(izé) {
var "ez meg az";
return("ez meg az");
}
var "ez meg az" = function(izé);
Na ez így jó vagy rossz?"
Ez most itt mi akart lenni?
Kérdésre válaszolva: nagyon rossz. Konkrétan semmi értelme. Nem is értem, itt mit akartál. var kulcsszó után egy string?
"Asszem ugyanez érvényes az Array.prototype-ra is, azt is a program elejébe illesztem be és nem tudom a benne hazsnált változók össze akadhatnak-e a program többi változójával."
var kulcsszót használsz, nem."Értsd: a function()-ben lévő változók "lokálisabbak-e", mint a programban lévők?
"
Ennek a kérdésnek semmi értelme.Az algoritmusról pedig már korábban beszélgettetek, azt annyira nem követtem végig, hogy hogyan kell ezt érteni, a tömböd rendezve van-e, meg minden részletet nem tudok.
Amúgy hogy működik ez a Tasker? Nem ismerem a progit, csak annyit tudok róla, hogy mindenféle feladatot végre lehet hajtani vele Androidon, ütemezést is, meg egyebeket lehet vele intézni, de hogy kódolni hogyan lehet hozzá, arról fogalmam sincs, sosem olvastam még róla, vagy néztem utána.
-
Sk8erPeter
nagyúr
válasz
Teasüti #3704 üzenetére
"Nem, nem "indentálok"."
Gondolom ez csak irónia volt.Ha a Prohardveren beszúrsz egy kódot, akkor jelöld ki, és kattints a "Programkód" gombra, ne pedig simán a Monospace-re. Akkor megmarad indentálva. Ezeket a dolgokat tényleg el kell magyarázni?
"Néztem a jsFiddle-t, de nem tudom használni (próbáltam átírni te példáidat is, de a result panelra nem tudok írni... más debug kiíratás sem ment.)."
Őőő, megvan, mi az a "result" szó, mit is jelent? Ne oda akarj írni, hanem pl. a HTML-, JS- vagy CSS-panelra...Nyilván a JavaScript-kódok a JavaScript-panelra mennek, remélem, ezt nem kell elmagyarázni, miért.
A jsFiddle-nél pedig a TidyUp gomb szolgálja azt a célt, hogy a kódod szebb legyen, mindegyik panelban szépíti."Próbáltam a böngésző konzolját is, de az se túl felhasználóbarát."
Miért is kellene, hogy felhasználóbarát legyen? Nem az a dolga."Inkább marad a natív környezet."
Milyen natív környezetről beszélsz?"Eddig még nem szúrtam el a zárójelezést egyszer sem.
"
Botrány. Ezek a mai fiatalok...Majd el fogod. Amúgy nem értem, ez a zárójelezős téma hogy jött ide, amikor Karma tanácsokat adott a tömbhasználathoz és az algoritmusodhoz...
Amúgy meglehetősen gány, amit csinálsz, ez az összefűzögetős valami (annyira nem próbáltam meg értelmezni). Nem tudom, most hány elemmel kísérletezel, de amikor mondjuk lesz 1000 név a telefonkönyvben, amiből szűrni kell az általad mutatott módon, akkor nem biztos, hogy azonnal végezni fog vele például egy gyengébb procival rendelkező teló...
"a meghívott function()-ökben deklarált változók ugye elszeparáltak a programtól?"
Ez így elég rossz megfogalmazás, lokális változóknak hívják, amikről beszélsz, var kulcsszóval kell deklarálni őket JavaScriptben. Ha nincs var kulcsszó, akkor felmerülhet a probléma, hogy az adott függvényben esetleg globális változót felülírsz vele, aminek pontosan ugyanez a neve, és elérhető az adott scope-ból. Ha referenciákra vagy kíváncsi, kapcsolódó téma:
http://stackoverflow.com/questions/7744611/pass-variables-by-reference-in-javascript/7744623#7744623
http://stackoverflow.com/questions/518000/is-javascript-a-pass-by-reference-or-pass-by-value-language
http://stackoverflow.com/questions/13104494/does-javascript-pass-by-reference
csak hogy ne nekem kelljen elmagyarázni.
Egyébként más esetben a függvényeid nem fognak tudni egymás lokális változóiról. -
Karma
félisten
válasz
Teasüti #3701 üzenetére
Remélem a tényleges kódban indentálsz, és csak a fórummotor miatt ilyen olvashatatlan... Emiatt (is) egy kicsit nehéz megítélni, hogy nem-e futsz túl hosszú köröket a probléma körül spirálban.
Például a kettővel ezelőtti kérdésnél nem értettem, hogy miért használsz push-t a tömbre - JavaScriptben a [] operátorral akármilyen indexnek tudsz értéket adni, nem kell kézzel növelgetni.
Meg amúgy az alapprobléma is olyan, hogy lehetnek rá kész algoritmusok. Maga a stringtávolság témakörben ott a Levenshtein távolság, bár telefonszámokhoz lehet overkill. Mondjuk regexelni is szinte biztosan (bár nem látom tisztán hogy hol jön a képbe).
-
Teasüti
nagyúr
válasz
Teasüti #3701 üzenetére
Jah és ez az egész macera azért, mert az Array.indexOf() csak az első elemet dobja vissza, és nincs egy jó kereső metódus a natív Array() objektumban, így csináltam egyet magamnak.
(Gondolom ha majd vmikor elkezdtem használni vmelyik könyvtárat, akkor a homlokomhoz fogok csapni előbb-utóbb...) -
Sk8erPeter
nagyúr
válasz
Teasüti #3698 üzenetére
Pont ezt akartam írni én is, hogy ennek úgy, ahogy van, ebben a formában semmi értelme. Tényleg leírhatnád, mi a célod.
(#3696) Teasüti :
biztos, hogy ezt az egészet JavaScripttel akarod elintézni, nem pedig valami adatbázissal, amiben még lehet is értelmesen keresgélni és tárolni (mivel például erre való)? -
Sk8erPeter
nagyúr
válasz
Teasüti #3693 üzenetére
RSS? És csodálkozol, hogy az nem JSON?
Olvasnivaló.
-
Sk8erPeter
nagyúr
válasz
Teasüti #3671 üzenetére
"Elég kevés a JSON, jellemzően eddig csak Google API-k esetén találkoztam vele."
Hogy érted azt, hogy "kevés a JSON"? Csak mert meglehetősen népszerű formátum, aminek lehet örülni."XML-t népszerűbbnek találom azok kevés webservice közt, amikhez szerencsém volt eddig."
Az XML valóban a legnépszerűbb volt ilyen tekintetben régen, mostanra ez már nem igaz. A JSON-formátum ma már meglehetősen elterjedt, például REST API-nál (is) nagyon jellemző.
Amúgy meg amiatt, hogy XML-lel többször találkoztál, miért szívatod magadat a nehézkesebb kezelésével, ha nem muszáj?Főleg, ha egyiknek a kezelését sem sajátítottad el még olyan szinten. Karmával már ketten is mutattunk példát rá, hogy jelen esetben mennyivel egyszerűbb dolgod lenne a JSON-formátum használatával.
Azt viszont jó ötletnek tartom, hogy először a plain JavaScripttel akarsz megismerkedni, és csak utána a jQuery-vel, hidd el, meg fog térülni, úgyhogy ebben bölcsen döntöttél.
Szerk.: most látom, hogy már kitárgyalták a többiek is az XML vs. JSON-témát, a későbbiek olvasása nélkül reagáltam egyből, sorry.
-
Teasüti
nagyúr
válasz
Teasüti #3688 üzenetére
Összehasonlítottam magam is a Tasker JS getTime() metódust ezzel, és tényleg UTC eredményt ad.
Legalábbis e szerint.
Na most akkor hol a hiba?
A London, Anglia példában a magyar időhöz képest mégse kaptam jó eredményt önmagában a Date().getTime() paranccsal.
Jelenleg meg ugye -7200 másodperc a request előtt, majd +3600 a válasz után és így adja vissza a helyes 11:50-et (ha itthon 12:50 van). -
Karma
félisten
válasz
Teasüti #3685 üzenetére
Márpedig valamit biztosan rosszul számolsz. Írtam egy fiddle-t, kipróbáltam több időzónára állítva a gépemet (persze mindig újraindítva a Chrome-ot), és a timestamp mindig ugyanazt az eredményt adja vissza. A timezoneOffset változik - ami egyébként a mi időzónánkban negatív, azaz adja magát, hogy kivonni kell a mi zónánk idejéhez.
Az epoch idő konverziót meg itt ellenőriztem. És nekem végig jók lettek a számok.
Namost a Google Timezone API-t nem ismerem, arról nem tudok nyilatkozni, de megvizslatom mindjárt
-
Teasüti
nagyúr
válasz
Teasüti #3684 üzenetére
Nem csak W3School referenciája hibás ezek szerint. Itt sincs szó UTC-ről a getTime() esetében.
-
martonx
veterán
válasz
Teasüti #3671 üzenetére
"Elég kevés a JSON, jellemzően eddig csak Google API-k esetén találkoztam vele.
XML-t népszerűbbnek találom azok kevés webservice közt, amikhez szerencsém volt eddig." - figyi az XML a múlt, a JSON a jövő. Viszont historikus okokból persze, hogy rengeteg XML-es webszolgáltatással lehet találkozni, de ez akkor is a múlt (illetve per pillanat még a jelen egy jó része), pont az olyan szopáshalmok miatt, mint amikbe te is belefutsz. Ráadásul a SOAP (a webszerveres xml kommunikáció élharcos protokollja) pont annyira szabványos, mint a HTML, vagyis ahány implementáció, annyiféle kompatiblitiási problémába lehet belefutni. -
Karma
félisten
válasz
Teasüti #3668 üzenetére
Nem jó a nodeValue, mert a koordináta nem az lng element értéke, hanem van neki egy text node gyereke. Ha az lng-ig eljutottál, használd a textContent mezőt, és nem kell kibogarásznod ezt a szintet.
Egyszerűen egyébként sok getElementsByTagName hívással tudod pontosan megkeresni azt aki neked kell (így elkerülöd azt, hogy ha nincs whitespace a válaszban, összetörik a parsered) - de igazából sokkal jobb lenne áttérni a JSON formátumra. Most már sejtheted, hogy miért.
(Összehasonlításképp: res.results[0].geomerty.location.lng a JSON objektumból kivenni ugyanezt.)
Egyébként itt egy fiddle amivel ezt kísérleteztem. Egyszerűbb mint telefonon
-
Karma
félisten
válasz
Teasüti #3666 üzenetére
Ha böngészőben lennél, akkor azt mondanám, hogy a szinkron viselkedés semmilyen körülmény mellett nem elfogadható és szervezd át úgy, hogy az egyes hívásokat lekezelő függvényeket kezelő onreadystatechange függvényeket előre definiáld.
Ha használnál külső libeket, akkor meg a Promise objektumok felé terelnélek.
Viszont így Taskerben nem olyan kritikus a helyzet.
---
Változós téma.
A változó deklarálás, amit a var kulcsszóval jelzel, és az objektumlétrehozás, amit csinálhatsz a new kulcsszóval, illetve primitív típusoknál a literálokkal meg regexnél a / jelekkel, két egymástól teljesen független dolog.
A deklarálás különböző formáiról, hogy akkor hol tárolódnak az értékek, és hogy hat rájuk a delete operátor pont tegnap olvastam egy nagyon jó cikket.
-
Teasüti
nagyúr
válasz
Teasüti #3659 üzenetére
Bár referenciát még nem találtam a node-ok szerepére a fenti sorban, esetleges alternatívákra.
Nem aktuális. -
Sk8erPeter
nagyúr
válasz
Teasüti #3656 üzenetére
"És JSON formátumot is fel tudok dolgozni XML objektumként?"
Nem jó a kérdés, JSON-formátumot annak megfelelő formában is kell feldolgozni.Kell hozzá általában egy JSON.parse() (+[link]), lásd alább.
Nagy előnye, hogy nagyon kényelmes is feldolgozni (ha a natív JSON-támogatás adott (ha nem, akkor külső könyvtár vagy más megoldás kell))."megzavart, hogy én itt XMLHttp-vel dolgozom"
Nem csodálom, de ne zavarjon meg.Az előzőek alapján írtam neked egy nagyon egyszerű példakódot, nyisd meg a böngésződ fejlesztőpanelét (F12-vel), kattints a Console fülre, majd egyszerűen másold be ezt a kódot, és nyomj egy Entert, hogy lásd, mit csinál:
// https://developer.mozilla.org/en-US/docs/AJAX/Getting_Started
var loc = "40.714224,-73.961452"; // csak példa
var httpRequest = new XMLHttpRequest();
httpRequest.onreadystatechange = function() {
if (httpRequest.readyState === 4) {
if (httpRequest.status === 200) {
var responseText = httpRequest.responseText;
var responseTextInJSON = window.JSON.parse(httpRequest.responseText);
if(responseTextInJSON.status === "OK"){
var results = responseTextInJSON.results;
for(var i = 0; i<results.length; i++) {
var addr = results[i].formatted_address;
console.log("formatted address: ", addr);
// további eredmények...
}
}
else {
// valami gáz van, kezeld le a hibát
}
} else {
// para van
alert('There was a problem with the request.');
}
}
};
var url = "https://maps.googleapis.com/maps/api/geocode/xml?latlng="+loc+"&sensor=true";
// inkább JSON-formátum
url = "https://maps.googleapis.com/maps/api/geocode/json?latlng="+loc+"&sensor=true";
var isAsynchronous = true; // változtasd meg, attól függően, hogy aszinkron kérést szeretnél, vagy sem
httpRequest.open("GET", url, isAsynchronous);
httpRequest.send();Így elég egyszerűen fel lehetett dolgozni az eredményeket, amiket JSON-formátumban kaptál.
-
fordfairlane
veterán
válasz
Teasüti #3656 üzenetére
Ha megvan az eredmény JSON formátumban, egyszerűen belerakod egy változóba, majd a megfelelő propertyket lekérdezed.
var v = http.responseText;
for(i = 0; i < v.results.length;i ++) {
alert(v.results[i].formatted_address);
}alert helyett persze használj valami más debug kiíratást.
-
Sk8erPeter
nagyúr
válasz
Teasüti #3653 üzenetére
Huh, ez a split()-es megoldás nagyon rossz. Karma előttem már írta az XML-es megoldást, de ha van rá lehetőséged, használhatnád a JSON-ös megoldást is, én legalábbis mindenképp kellemesebbnek találom JavaScript-kódban ennek a használatát.
Példa, ha már a Google Maps volt a központi téma:
XML:
https://maps.googleapis.com/maps/api/geocode/xml?latlng=40.714224,-73.961452&sensor=true
JSON:
https://maps.googleapis.com/maps/api/geocode/json?latlng=40.714224,-73.961452&sensor=true(az URL-ben csak az "xml" részt kellett "json"-re változtatni)
-
Karma
félisten
válasz
Teasüti #3653 üzenetére
Hát a splitet nagyon gyorsan felejtsd el erre a célra! Amellett hogy ocsmány, nagyon hamar karbantarthatatlanná válik.
Természetesen van jobb megoldás, a responseXML-lel pont, ahogy írtad. Ha well-formed XML jön le, elvileg semmi dolgod nincs, csak ezt használni a text helyett. Példát láss itt.
-
Sk8erPeter
nagyúr
válasz
Teasüti #3651 üzenetére
Na, ennek örülök, szívesen!
============================
"Eddig így csináltam: loadApp('Viber','',false) ahol egy üres string-et írtam a középső paraméterbe.
Próbáltam e módon is: loadApp('Viber',false) de ez nem működött. Úgy tűnik nem lehet csak úgy kihagyni egy köztes paramétert."
Az első változat a jó ebben az esetben. Vagy másik lehetőség az undefined-ot átadni: loadApp('Viber', undefined, false)
Lehetnek default paramétereid is, minimális trükközéssel, csak példakóddal:function loadApp(label, data, blabla) {
// ..........................
if(data === "" | data === undefined) {
data = "hello";
}
if(typeof blabla !== "boolean") {
blabla = false;
}
// ..........................
// ..........................
}Ekkor meghívhatod így: loadApp('Viber');, és ekkor a data változó egyenlő lesz a "hello" stringgel, a blabla változó pedig false-szal.
Persze ez csak példa.
Aztán játszhatsz még ilyenekkel is, mint például a PHP-s empty() függvény JS-be átültetett változata, és azzal is csekkolhatod egy változó értékét:
http://phpjs.org/functions/empty/
és ha valamelyik változó üres, akkor adsz neki egy alapértelmezett értéket, mint az előbbi példa. -
Sk8erPeter
nagyúr
válasz
Teasüti #3649 üzenetére
Most látom csak, eddig elkerülte a figyelmem, hogy a protokollt a cím elé nem írtad oda, ez gondot okozhat, tehát ezt:
http.open("GET","maps.googleapis.com/maps/api/geocode/xml?latlng="+loc+"&sensor=true", false);cseréld le erre:
http.open("GET","https://maps.googleapis.com/maps/api/geocode/xml?latlng="+loc+"&sensor=true", false);Annyit változtattam, hogy eléraktam a "https://" részt.
Amúgy ez a "http" változónév nem túl szerencsés sztem. Akkor már "httpRequest" vagy ilyesmi, amit használnak pl. MDN-en is, kifejezőbb kicsit. Bár nem kardinális kérdés.
Tehát akkor összességében valami ilyesmi legyen a kódod (próbáld ki, ez megy-e):
var loc = "40.714224,-73.961452"; // csak példa
var httpRequest = new XMLHttpRequest();
httpRequest.onreadystatechange = function() {
flash("readyState: "+httpRequest.readyState);
flash("status: "+httpRequest.status);
};
var url = "https://maps.googleapis.com/maps/api/geocode/xml?latlng="+loc+"&sensor=true";
var isAsynchronous = true; // változtasd meg, attól függően, hogy aszinkron kérést szeretnél, vagy sem
httpRequest.open("GET", url, isAsynchronous);
httpRequest.send();==================================
"Mi a helyzet akkor, ha kevesebb paramétert akarok átadni egy függvénynek, mint amennyi definiálva van?"
JavaScriptben ez működőképes, ez esetben a függvény paraméterei egyszerűen definiálatlanok maradnak, tehát undefined "értékük" lesz.Böngészőben ezt nagyon egyszerűen tudod csekkolni, nyisd meg az adott böngésző fejlesztőpanelét (ált. F12), kattints a Console feliratra, majd simán másold be ezt a kis kódot, és próbálgasd (az általad mutatott példával):
function hello(var1, var2) {
console.log('var1', var1);
console.log('var2', var2);
}
var blabla = 42;
hello(blabla);Ez esetben var1 értéke 42 lesz, var2 értéke undefined.
Ha úgy hívod meg a függvényt, hogy nem adsz át paramétert (így: hello();), akkor mindkét paraméter (var1, var2) értéke undefined. -
Sk8erPeter
nagyúr
válasz
Teasüti #3647 üzenetére
http.open("GET","maps.googleapis.com/maps/api/geocode/xml?latlng=loc&sensor=true", false);
Azontúl, amit wis javasolt, még egy igen nagy hiba van a kódodban így első ránézésre, konkrétan az idemásolt részletben: a "loc" nevű változó értéke nem helyettesítődik be, mivel nem konkatenálod, tehát így kéne átírnod a fenti sort:
http.open("GET","maps.googleapis.com/maps/api/geocode/xml?latlng="+loc+"&sensor=true", false);
Mint látható, itt már hozzáfűződik a "loc" változó értéke.
Új hozzászólás Aktív témák
Hirdetés
- Thinkpad T14 Gen5 14" FHD+ IPS Ultra 5 135H 16GB 512GB NVMe ujjlolv IR kam gar
- Használt gamer/ workstation laptop felvásárlás TÉNYLEG magas áron!
- Intel Core Ultra 7 265 /// Bontatlan, Teljesen Új // Üzletből, Számlával és Garanciával
- Csere-Beszámítás! Ryzen 9 9950X Processzor!
- Újszerű Gamer Asztali PC Számítógép 2026-ig Garis ASUS H510M-K R2.0 i5 11400F RTX 4060 8GB Dobozába
- LG 27GS60QC-B - 27" Ívelt - 2560x1440 - 180Hz 1ms - AMD FreeSync - Bontatlan - 2 Év Gyári Garancia
- Törött, Hibás iPhone felvásárlás!!
- AKCIÓ! Apple MacBook PRO 15" 2018 i9 32GB 500GB 560X 4GB notebook garanciával hibátlan működéssel
- IBM/Lenovo Thinkpad T60
- ÁRGARANCIA!Épített KomPhone i5 13400F 16/32/64GB RAM RX 7700 XT 12GB GAMER PC termékbeszámítással
Állásajánlatok
Cég: PC Trade Systems Kft.
Város: Szeged
Cég: PC Trade Systems Kft.
Város: Szeged