- India felől közelít egy 7550 mAh-s Redmi
- Samsung Galaxy S23 Ultra - non plus ultra
- Vivo X200 Pro - a kétszázát!
- Xiaomi 14T Pro - teljes a család?
- Okosóra és okoskiegészítő topik
- Motorola Edge 30 Neo - wake up, Jr...
- Hivatalos a OnePlus 13 startdátuma
- Samsung Galaxy Fit 3 - keveset, de jól
- Huawei Mate X6 - keleti oldal, nyugati oldal
- Samsung Galaxy A56 - megbízható középszerűség
-
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
-
Sk8erPeter
nagyúr
"ilyen esetben a return false e.preventDefaultot jelent"
Nem, a return false event.preventDefault() ÉS event.stopPropagation() hívást IS jelent!
http://www.mail-archive.com/jquery-en@googlegroups.com/msg71371.html
Amúgy nincs mit
-
Sk8erPeter
nagyúr
"és minek raktad bele, hogy return false?"
Erről érdemes elolvasni ezt:
return false, event.preventDefault, event.stopPropagation
http://stackoverflow.com/questions/1357118/event-preventdefault-vs-return-false(#3354) Jim-Y :
raggg: lemaradt egy záró ;
Igazából ez nem tekinthető SAJNOS hibának JavaScript-kód esetén, hiszen a JavaScript-kód automatikusan kiegészül pontosvesszővel, amennyiben explicite nincsenek kitéve.
Ez az automatikus kiegészítés adott esetben nem várt hibákat is okozhat, ezért egyébként jó, ha felhívjuk a figyelmét az embereknek, hogy ne felejtsék kitenni a pontosvesszőt.
Ha érdekel bővebben (érdemes tudni róla):
Automatikus pontosvessző beszúrás JavaScriptben
http://vimeo.com/15392265
http://www.slideshare.net/presidento/automatikus-pontosvessz-beszrs-a-javascriptben -
-
-
spammer
veterán
-
qwertly
addikt
Szia!
Nagyon béna vagyok ebben a témában,igy bementem az admin felületre utána klikkeltem a firefox jobb menü oldal forrása.Itt előjött jegyzettömb szerű felület ott szerkesztés azon belül a keresésre mentem ide beírtam widget slideshow szavakat amit írtál.Nem adott semmit.Mit csináltam rosszul? -
Sk8erPeter
nagyúr
Igen, ez így van, egy alias, de attól még nem a prototype szemléltetése, mert ha a prototype-ot akarod szemléltetni, akkor szerintem plain JS-megoldást kell bemutatni, és nem ide is erőltetni a jQuery-t; amit linkeltem, az szerintem kifejezetten jó példa ilyenre.
"Ha a metódusban visszatérsz magával az objektummal, akkor létrehoztad a chainability lehetőségét."
Köszönöm, hogy elmagyarázod, de nekem ez most nem újdonság, de én meg pont azt mondtam, hogy te nem teremtetted meg a chainability lehetőségét, mivel nem tértél vissza az objektummal.
De hidd el, nem kötekedésként írtam, hanem azért, mert nem volt tiszta, hogy ezt vágod-e vagy sem. -
Sk8erPeter
nagyúr
Ezt most nem egészen értem, hol van ebben a példakódban a klasszikus prototype szemléltetése?
A jQuery.fn.blabla = function () { ... } pont egy jQuery plugin megírásának mintája, de a tiéd abból a szempontból sem túl jó, mert beledrótozod, hogy a <p>-kre működjön, nincs chainability, és így tovább (lásd ezt: http://docs.jquery.com/Plugins/Authoring). (Ha már szemléltetés, legyen jó.
)
A klasszikus JS prototype-ra ez egy nagyon jó és gyorsan megérthető szemléltetés:
http://stackoverflow.com/questions/572897/how-does-javascript-prototype-work/4778408#4778408 -
Sk8erPeter
nagyúr
A kivétel akkor keletkezik, amikor tényleg olyan hiba történik, ami indokolttá teszi, hogy ne fusson tovább az adott kódrészlet. Például szerveroldali logika esetén ha hiba történik az adatbázis-kapcsolatban, és éppen az adatok tárolása a cél, akkor nem lenne jó, ha továbberőltetnénk a kód futtatását, hanem megfelelően kezelni és logolni kell a hibát, majd adni egy felhasználóbarát hibaüzenetet. Hasonló vonatkozhat null-lal egyenlő változókon megkísérelt metódushívásokra, stb.
Logikusan kell strukturálni a kódodat, és ahogy Karma is javasolta, olykor az egyszerű feltételvizsgálatok sokkal célravezetőbbek lehetnek, mint a nem kritikus hiba esetén történő kivételdobálások; ha egy kódrészlet lefuttatására meg mindenképp szükség van, akkor nyilván ne tedd a kritikus kódrészlet után, vagy tényleg a try-catch blokkon kívülre kell rakni (ebbe beleérthető a finally is).
Azt gondold végig, nem tudod-e jobban lekezelni az általad említett esetet, a JavaScript beépített függvényei segítségével is rengeteg feltételvizsgálatatot le lehet kezelni, a jQuery metódusai ehhez még nagyon sokat hozzátesznek, valamint ott van még a http://phpjs.org/ is, ahol rengeteg PHP-s függvény egyszerű JavaScriptes átírása szerepel, ez is sokat segíthet."Ezek az én függvényeim, nem csinálnak semmit, csak az első a jQuery objektumhoz "simán" hozzáfűzött függvény, míg a második a jQuery.prototype-hoz fűzött, az első azért dob biztosan kivételt, mert a függvényt a deklarált objektum után hoztam létre, így a meghívott objektumnak nem lesz showText() metódusa, míg a második esetben, prototype-nál igen, így az nem dob kivételt."
Igazából az alapprobléma nekem eléggé homályos, hogy mit is szeretnél elérni, és azt miért nem egy jól megírt jQuery pluginnel teszed. -
Karma
félisten
Hogyhogy nem kezeli le? A második utasítás meg se fog hívódni, mert az exceptiontől kiszáll abból a belső blokkból. Ez a dolgok természetes rendje, a második függvényhívásig nem jut el a program se try blokkban, se anélkül, ha kivételt dob az első.
A szóhasználat miatt nem jön át mit szeretnél, de azért próbálok valamit írni.
Ha mindkettő elszállhat és mindkét hibát le akarod nyelni, akkor két try blokkot írsz egymás után.
try {
valami1();
} catch (ex) {
// kiirod, megeszed, egyremegy
}
try {
valami2();
} catch (ex) {
}De ha mondjuk a második nem szállhat el, és meg akarod hívni az első hívás sikerességétől függetlenül, még akkor is ha továbbdobod a kivételt, akkor ott a finally.
try {
valami1();
} catch (ex) {
// kiirod, megeszed, egyremegy
// vagy tovabbdobod a "throw ex;" sorral
} finally {
valami2();
}Két try blokkot egymásba ágyazni tényleg nem szerencsés, mert amellett hogy egyre mélyebben kell indentálni, nem annyira szembetűnő hogy hiba esetén mi is történik.
Mondjuk ha ezek a te függvényeid, akkor akár megírhatnád őket úgy, hogy csak akkor dobjanak kivételt, amikor ténylegesen valami nagy hiba történik, nem pedig a kivételek köré szervezed a logikát (klasszikus antipattern). A boolean visszatérési értékű függvények pl. jók erre.
-
Jim-Y
veterán
Ohh, közben leesett, hogy hogyan gondoltátok
$("#persons_table tbody").append('<tr><td>'+name+'</td><td>'+etr+'</td><td class="editable">'+gyak+'</td></tr>').on("click",function(){
out("clicked");
});Ez így jó, csak annyi, hogy így az egész sorra kattintva értékelődik ki az on, de szerintem már ez is jó lesz, köszi
-
Sk8erPeter
nagyúr
(#3291) Karma : megelőztél 1 perccel.
-
Sk8erPeter
nagyúr
Chrome-ban: nyitsz egy F12-t, és a sorokat Shift+Enterrel választod el, ennyi.
Operában: Ctrl+Shift+I, és a sorokat szintén Shift+Enterrel választod el, majd Ctrl+Enterrel futtatod.
Egyébként mivel az Opera is Webkitre fog váltani, a Dragonfly meg fog szűnni.Firefoxban: lásd (#3269), vagy Firebug:
Show command editor: -
nobela
senior tag
Köszönöm, ez nagy segítség!
Ez egyrészt azt jelenti, hogy mégis megy IE9 alatt...
A probléma viszont továbbra is adott: az XP-s gépem egy teljesen átlagos gép, mindennapi használatban hiba nélkül működik. Gyanítom, hogy rengeteg hasonló lehet még az országban, naponta több száz weboldalt néznek meg rajta probléma nélkül.
Akkor viszont hogy lehet az, hogy CSAK ÉS KIZÁRÓLAG ezen az oldalon hibázik
u.i. Azzal a bordó téglalappal tényleg kell valamit kezdenem... Viszont én csak 1280x1024-es vagy kisebb felbontásban tudom megnézni sajnos, ott nem látszik
Van valami tipp mit kéne kiszednem a kódból?
Köszi az eddigi segítséget is!
-
Sk8erPeter
nagyúr
Az e.target.value sem rossz, de jelen esetben a this.value beszédesebb lehet, meg első ránézésre is könnyen érthető. Tehát
$("#ar").text(e.target.value);
helyett itt
$("#ar").text(this.value);
is teljesen jó: http://jsfiddle.net/4qbAg/3/Ettől függetlenül jó megoldást mutattál!
-
Dave-11
tag
-
Jim-Y
veterán
De ha jól értettem, hogy mit szeretnél megvalósítani, akkor azt így lenne célszerű(bb): http://jsbin.com/ukilit/4/edit
-
Sk8erPeter
nagyúr
Vágom, hogy ott miért nulláztad úgy, de akkor is felesleges.
Appendelni később is tudsz, miután sima text()-tel felülírtad az ott lévő szöveget.
Ja, valóban, egy zárójellel elnéztem (megmondom őszintén, csak átpörgettem a kódodat), és nem az .each-ben van a függvénydefiníciód, hanem a .click() eseménykezelőben, az sem sokkal jobb...
Egyébként sztem ez annyira nem volt jó példa arra, hogy a jQuery-ben kevesebb kóddal is meg lehet oldani a dolgot, mert Te meg jQuery-ben írattál ki sok olyan infót, ami igazából indokolatlan, mint pl. a "Legnagyobb páratlan szám", "\n\nÖsszegük" és a többi statikus szöveg.Itt a korábbi plain JS-kódot lehetett volna úgy is módosítani, hogy rövidebb és jóval szebb legyen.
Persze félre ne érts, azért jó, hogy mutattál alternatívát. -
Sk8erPeter
nagyúr
Szerintem az ember akkor ismerkedjen meg a jQuery-vel, ha már van plain JavaScriptben valami megalapozott tudása.
Persze ezzel lehet vitatkozni, de nem árt, ha az ember tudja, milyen munkától kíméli meg egy library, mi történik a háttérben, különben problémás működés esetén az ember csak néz majd nagyokat.Szerk.:
miért rakod OFF-ba a jsFiddle-példákat?Ez eléggé ON.
$("#num_array_result").text("").append("A számok:\n");
Ennek mi értelme?
Akkor már:
$("#num_array_result").text("A számok:\n");
Az isOdd függvényt miért az .each-en belül deklarálod?
Na jó, nem nézem tovább. -
trisztan94
őstag
A tinyboxosat megoldottam, nem volt még létrehozva a guest_user.php file
A másiknak itt a kódja:
<?php ?>
<!doctype html>
<html lang="hu">
<head>
<title>Cím</title>
<link href='http://fonts.googleapis.com/css?family=Niconne&subset=latin,latin-ext' rel='stylesheet' type='text/css'>
<link type="text/css" rel="stylesheet" href="../css/soon.css"/>
</head>
<body>
<form method="POST" action="register.php">
<input type="text" id="name" value="Vezetéknév - *Nem Publikus" class="elemek" name="name" /><br />
<input type="text" id="surname" value="Keresztnév - *Nem Publikus" class="elemek" name="surname" /><br />
<input type="text" id="username" value="Felhasználónév" class="elemek" name="user"/><br />
<div id="wrongemail" style="display: none; border:1 px solid red; background-color:white;">Nem Egyezik a Két e-mail Cím!</div>
<input type="text" id="email" value="e-mail - *Nem Publikus" class="elemek" name="email"/><br />
<input type="text" id="email_verify" value="e-mail megerősítése" class="elemek" onkeyup="verifyemail()"/><br />
<input type="password" id="password" class="elemek" name="password"/><br />
<input type="password" id="password_verify" class="elemek" onkeyup="verifypassword()"/><br />
<span>Elolvastam és elfogadom a <a href="../html/agreement.html">felhasználási feltételeket</a></span>
<input type="checkbox" id="agreement" /><br /><br />
<input type="submit" class="belepes" value="Regisztráció"/>
</form>
<script type="text/javascript">
function verifypassword()
{
var pass1 = document.getElementById("password").innerHTML;
var pass2 = document.getElementById("password_verify").innerHTML;
if(pass1 != pass2)
{
document.getElementById("wrongpass").style.visibility="visible";
}
else
{
document.getElementById("goodpass").style.visibility="visible";
}
}
function verifyemail()
{
var email1 = document.getElementById("email").innerHTML;
var email2 = document.getElementById("email_verify").innerHTML;
if(email1 != email2)
{
document.getElementById("wrongemail").style.display="block";
}
else
{
document.getElementById("goodemail").style.display="block";
}
}
</script>
</body>
</html>
Közben megváltoztattam a visibility-t display-re -
trisztan94
őstag
Azt is csináltam, nem jó
Hát ugye, rámegy a nevére, kidobja az adatlapját, mennyi kredite van stb, ha vendég fiókkal van bejelentkezve akkor meg azt írja, hogy itt lenne ez meg az.edit:
Végülis annyi változást láttam, hogy az oldal scrollbarja kisebbedik, de nincs tartalom.edit 2:
onkeyup="javascript:verifyemail();" ---> onkeyup="verifyemail()"Szintén semmi változás.
-
Sk8erPeter
nagyúr
Na, kipróbáltam, használtam a chrome.management API-t, és bár hozzá lehet nyúlni az extensionökhöz úgy, hogy ezen a kiegészítőn keresztül letiltod, de a default ikont sajnos nem lehet megváltoztatni.
Viszont egyébként tök jól ki lehet listázni az összes extensiont, applicationt is (ami a default új lapon látszik, ha jobbra lapoztok), keresgélni lehet köztük, stb., szóval ez egész hasznos.
A példaoldalon található App Launcher extensiont továbbfejlesztettem egy kicsit, és így különválasztva ki lehet listázni ezeket, meg lehet keresgélni, és ha az extensionre kattintasz, akkor feljön egy confirm ablak, hogy valóban le akarod-e tiltani az adott extensiont, ha leokézod, akkor le is tiltja. Így tehát a popup ablakban is meg lehet csinálni ezeket a műveleteket.
Ha gondoljátok, és érdekel Titeket ez az extension, akkor megosztom, szóljatok, ha kő'.Egy szó, mint száz: sajnos a jogos gyanú beigazolódott, hogy extension ikonját megváltoztatni valóban csak egymásnak történő üzenetküldözgetésekkel lehet.
Gondolom így akarták elkerülni, hogy az extensionök túlságosan bele tudjanak kotorni egymás dolgaiba. -
spammer
veterán
Bizony, frissítésnél felül fogja írni. Ezt elkerülendő lett volna jó a userscript (esetleg extension) megoldás.
Persze ez is egy megoldás, meg a kézi ikoncsere is, csak nálam ott a kíváncsiság, hogy esetleg scripttel vagy extension-nel megoldható-e. Tehát hogy a probléma megoldható-e ily módon. Mert ha igen, akkor lehetne egy hasznos extension-t (vagy scriptet) írni Chrome-ra, mert ilyen még nincs.
-
Sk8erPeter
nagyúr
"ez nem tudom, hogy jön ide, bár akkor lehet nem értem még mindig az alapproblémát, nem azt kéne megvalósítani, hogy ha mondjuk ő letölti a gmailes kiegészítőt webstore-ból, akkor ennek az ikonját kéne online tárhelyen lévő képre változtatni?"
Én meg nem értem, mit nem értesz azon, hogy hogyan jön ide.
Hát épp az extensionökről kapsz adatot a chrome.management-en keresztül, így azok default ikonjáról is. Hogy változtatni is lehet-e ilyen módon, azt nem tudom, mert ez a része elég szegényes a Chrome-doksinak...
Értem én a példádat, és azt is, hogy a jobb megoldás valószínűleg tényleg a két extension közti kommunikáció, de én az adott helyzetre próbáltam kerülő utat találni - a chrome.management-en keresztül elérhető dolgokat nem próbáltam, így ezzel tapasztalatom még nincs. Na, de lehet, hogy holnap rászánom magam, már érdekel.===
(#2636) : "shell scripttel" - vagy Windows esetén egy sima batch-fájllal, amit a gép indítására (vagy bizonyos időközökre) ütemez, azt' kész. Vagy ha frissül egy kiegészítő, akkor azt úgyis látja, és akkor ráküldi a batch-fájlt.
-
spammer
veterán
-
Sk8erPeter
nagyúr
Megnézted egyáltalán, amit linkeltem?
"The chrome.management module provides ways to manage the list of extensions/apps that are installed and running."
Ilyen módon - amennyiben ebben a kiegészítőben, amit a változtatgatás céljára készítettél, a felhasználótól elkérted és megkaptad az engedélyt - akár még le is tilthatsz kiegészítőket.
Meg kapsz egyéb infókat is a többi kiegészítőről.
Az ikont mondjuk nem tudom, meg lehet-e változtatni, lehet, hogy arról csak infót kapsz.Az ExtensionInfo objektumon belül:
icons ( optional array of IconInfo )
A list of icon information. Note that this just reflects what was declared in the manifest, and the actual image at that url may be larger or smaller than what was declared, so you might consider using explicit width and height attributes on img tags referencing these images. See the manifest documentation on icons for more details. -
spammer
veterán
Hát, én annyira nem vágom a Chrome addon témát, de ha te igen, akkor írhatnál rá egy kieget
Annyit kellene csinálnia, hogy a telepített addonokat beolvassa egy oldalra, megjeleníti a default_icon-jukat és ott meg lehetne adni egy url-t egy textfield mezőbe írva, hogy honnan töltse be az új ikont
Gondolom seperc alatt megvan egy ilyen
Egyébként a Chrome ilyen szempontból eléggé fapad, mert a Firefox pl. simán userstyle-okkal szarrá moddolható... De ahogy látom, lehet, hogy a Chrome-nál nem is lehetséges ilyen mértékű beavatkozás, ha csak tényleg nem egy extension van rá írva, ami talán meg tudná ezt csinálni.
-
spammer
veterán
Így van, a kiegészítők ikonjait szeretném lecserélni, nem a "gyári" böngésző ikonokat
Manuálisan cserélhetők lennének, hogy ha kézzel bemásolom és felülírom a gépen tárolt ikonokat, de így amikor frissül egy kiegészítő, akkor megint csak visszaáll az eredetire, ezért lenne kényelmesebb egy script, ami mindig felülírja egy weben tárolt ikonnal
szerk: webstore-ból telepített kiegek, de ezeket mind kitömörítve tárolja a gépen appdata-n belül (lásd a kódban levő elérési út)
-
Sk8erPeter
nagyúr
Jim-Y: láttad, amit írtam neked? Csak mert tudod illik reagálni, ha mások foglalkoznak az ember problémájával.
(#2532) Jim-Y : ez a HTML-kód igen erősen invalid.
Nézd át még egyszer.
-
Jim-Y
veterán
Ugyanez jqueryvel
html:
<input type="text" id="kijelzo"/>
<input type="button" value="1"></div>
<input type="button" value="2"></div>
<input type="button" value="3"></div>javascript:
$(document).ready(function() {
$(":button").click(function (){
var value = $("#kijelzo").val();
value+=$(this).val();
$("#kijelzo").val(value);
});
}); -
Sk8erPeter
nagyúr
Majdnem jó, ahogy Speeedfire írta, eggyel még feljebb kellett volna menned.
Ez jó, ezt kipróbáltam, úgy, hogy szűkítettem a p-ket még az url class-szel rendelkezőkre:
$("img").click(function (){
var p = $(this).parent().parent().find("p.url").text();
alert(p);
});Felraktam neked ide egy példát róla:
http://jsbin.com/ujiruc/edit#javascript,html,liveMásik megoldás röviden a .closest() használata:
http://jsbin.com/ujiruc/2/edit#javascript,html,live
Ez felfelé rohangászik a DOM-fában, úgy próbálja megtalálni a selectornak megfelelő elem(ek)et. -
Sk8erPeter
nagyúr
Ha a linkre rámész, kiderül...
Egyébként szintaktika-kiemelős kódmegosztó portál.
A "Syntax Highlighting" résznél kiválasztod a programnyelvet, a nagy szövegmezőbe bemásolod a kódodat, és a Submit gomb megnyomása után az adott programnyelv szintaktikája szerint fogja kiemelni a szöveget.
Nagyon hasznos, próbáld ki.
Csak egy rövid példa a Te korábbi kódoddal: [link]. -
jeges
senior tag
az fog megjelenni a '$1' helyén, amit zárójelbe teszel. mivel a digit változódban a . van zárójelben, ezért egy . jelenik meg. tedd a teljes kifejezés köré a zárójelet -> /(kifejezés)/gi
szerk:
var digit = /([0-9]+\.[0-9]+\s+Ft)/g;
tettem egy +-t a \s mögé, hátha elírja valaki, meg egy escape-et a . elé, hogy ne "bármilyen karakter" nek ismerje fel, hanem .-nak
(bocs, nem teszteltem, ezt már rád bízom) -
jeges
senior tag
-
Sk8erPeter
nagyúr
"ennek most csak a teszt kedvéért van height és width értéke, ezeket 0-ra fogom állítani , mert hiddenként fogom használni"
Ez rossz megoldás lenne.
Inkább állítsd a CSS-tulajdonságával display:none;-ra, és el van tüntetve.
Példa:
document.getElementById("iframe_neve").style.display="none";Az általad kérdezett konkrét példát én így oldanám meg egyszerűen (kipróbáltam, nálam elég jól működik egy egyszerű táblázat sorai tartalmának lekérdezésére):
ezt pakold be a HTML-dokumentumod <head> részébe:<script type="text/javascript">
function iframe_td(iframe_neve){
var get_iframe=document.getElementById(iframe_neve);
var get_tds = get_iframe.contentWindow.document.getElementsByTagName("td");
var ide_ird=document.getElementById("ide_ird");
for(var i=0;i<get_tds.length;i++)
ide_ird.innerHTML+=get_tds[i].innerHTML;
}
</script>Használni pedig úgy tudod, hogy mondjuk van egy gombod (itt "blabla" néven), amivel meghívod a függvényt, és van egy HTML-elemed (pl. egy <div>), aminek az azonosítója (id) "ide_ird", valamint természetesen maga az iframe, aminek az azonosítója itt "egy_iframe":
...
<!-- ez maga az iframe -->
<iframe src="table.html" id="egy_iframe"></iframe>
...
<!-- ezzel a gombbal hívod meg a függvényt: -->
<input type="button" value="blabla" onclick="iframe_td('egy_iframe');" />
...
<!-- ide fogja írni az eredményt -->
<div id="ide_ird"></div>Remélem így tiszta, ha valami nem világos, kérdezz nyugodtan.
Új hozzászólás Aktív témák
Hirdetés
- Subaru topik
- India felől közelít egy 7550 mAh-s Redmi
- Samsung Galaxy S23 Ultra - non plus ultra
- Milyen házat vegyek?
- PlayStation 5
- Házi barkács, gányolás, tákolás, megdöbbentő gépek!
- World of Tanks - MMO
- Vicces képek
- Sütés, főzés és konyhai praktikák
- Vivo X200 Pro - a kétszázát!
- További aktív témák...
- BESZÁMÍTÁS! ASUS VivoBook X1504ZA notebook - i3 1215U 16GB DDR4 RAM 512GB SSD Intel UHD IGP WIN11
- AKCIÓ! Apple Macbook Air 13" 2020 M1 8GB 256GB SSD notebook garanciával hibátlan működéssel
- Telefon felvásárlás!! Apple Watch Series 9/Apple Watch Ultra/Apple Watch Ultra 2
- BESZÁMÍTÁS! MSI B450M R5 5500 32GB DDR4 512GB SSD RTX 3060 12GB Rampage SHIVA Chieftec 600W
- Xiaomi Redmi A3 128GB, Kártyafüggetlen, 1 Év Garanciával
Állásajánlatok
Cég: Liszt Ferenc Zeneművészeti Egyetem
Város: Budapest
Cég: PC Trade Systems Kft.
Város: Szeged