- Luck Dragon: Asszociációs játék. :)
- sziku69: Fűzzük össze a szavakat :)
- Luck Dragon: Alza kuponok – aktuális kedvezmények, tippek és tapasztalatok (külön igényre)
- Rap, Hip-hop 90'
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Elektromos rásegítésű kerékpárok
- Geller72: Az MS Seed szervert üzemeltet a gépeden és lehet hogy nem is tudsz róla?
- GoodSpeed: MacBook NEO - tapasztalatok!
- sziku69: Szólánc.
- Sub-ZeRo: Euro Truck Simulator 2 & American Truck Simulator 1 (esetleg 2 majd, ha lesz) :)
-
Fórumok
LOGOUT - lépj ki, lépj be!
LOGOUT reakciók Monologoszféra FototrendGAMEPOD - játék fórumok
PC játékok Konzol játékok MobiljátékokPROHARDVER! - 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ésFÁ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
-
Doink
aktív tag
-
Doink
aktív tag
-
Doink
aktív tag
-
Doink
aktív tag
-
Doink
aktív tag
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<style>strong { color: red }</style>
<title>File(s) size</title>
<script>
function readTextFile(file) {
const reader = new FileReader();
reader.onload = (event) => {
document.getElementById('file-content').innerHTML += `<strong>${file.name} (${file.size} bytes):</strong> <pre>${event.target.result}</pre> <br><br>`;
};
reader.readAsText(file);
}
function sendFiles(elem) {
document.getElementById('file-content').innerHTML = '';
for(const file of elem.files) {
readTextFile(file);
}
};
</script>
</head>
<body>
<p><input id="uploadInput" type="file" name="myFiles" onchange="sendFiles(this);">
<p><input type="submit" value="Send file"></p>
</body>
<p id="file-content"></p>
</html> -
Doink
aktív tag
Nem mert a CORS az böngésző feature.
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Origin -
Doink
aktív tag
<!DOCTYPE html>
<html>
<body>
<button id="btn">Click me</button>
<script>
const btn = $("#btn");
btn.on("click", () => {
btn.attr("disabled", "disabled");
$.get("/egy-szep-url")
.then((response) => {
// 200 OK jött vissza
}).catch((error) => {
alert(error);
}).always(() => {
alert("Most fog lejönni a disabled");
btn.removeAttr("disabled");
});
});
</script>
</body>
</html> -
Doink
aktív tag
-
Doink
aktív tag
Az összefüggés ott van hogy a 2 függvényed blokkoló az onclickben, vagyis a böngésző addig nem rajzolja újra az oldalt amíg nem végzett mind2vel. (addig befagy a böngésző mivel 1 szál van)
Az én példámban is csak az utolsó alert() OK után fogja újrarajzolni neked.Ennek az oka az event-loop modell, ami akkor kurva jó ha sok apró dolgot csinálsz async (jellemzően webes felületeken ez történik).
Operaban ctrl+shift+I
-
Doink
aktív tag
Példa, ez mind blokkoló másold be az F12 console-ba és nyomj entert:
document.body.innerHTML = "Ezt se látod";
alert("ugye?");
document.body.innerHTML = "Meg ezt se látod";
alert("ugyehogyugye?");
document.body.innerHTML = "Na ezt látod";
alert("Na majd most fogja újrarajzolni az oldalt a böngésző mert előtte minden blokkoló"); -
Doink
aktív tag
-
Doink
aktív tag
-
Doink
aktív tag
-
Doink
aktív tag
-
Doink
aktív tag
-
Doink
aktív tag
Mert beégette az adatokat, ha innen akarsz hívni egy service-t akkor neked így indítani a konstruktort nem sok értelme van (egy üres tömböt deklarálsz majd belekopizol egy üres tömböt). Viszont ha azon a vonalon vagy hogy resolve-olod a state-ben a service hívást akkor akár még járható út is lehet, hiszen akkor van mit lemásolni.
-
Doink
aktív tag
-
Doink
aktív tag
-
Doink
aktív tag
1. kérdés: Nem lehet, a user beállította a böngészőjében hogy kérdezzen rá akkor rá fog kérdezni. (IE-nél lehet valamit hegeszteni rajta talán mert nekik van ilyen: window.navigator.msSaveOrOpenBlob)
2. kérdés:
Én fetchelném őket blob-okba aztán utána save.
Ezt az iframe-es / 4 dollárjelért jquery behúzásos setTimeoutos mókát nem biztos hogy eröltetném. -
Doink
aktív tag
Hát ha nagyon gettoban nyomod és csak a php akkor onchange-nél írd át a document.location.href -et úgy, hogy megkapja az első select kiválasztott idjét pl: http://blablalba/products?product_id=2
És így php-ban már látod a $_GET['product_id']-t és csak 1 sor js-t kellett írni.
Ez a megoldás több sebből is vérzik de csak azért írtam hogy lásd hogy megoldható.Amúgy inkább ajaxal kéne, ha az első select változik akkor fetch()-elsz egyet ahol visszakapod a kiválaszott product színeit json-ban. Utána meg jsből kicseréled az alsó select értékeit.
-
Doink
aktív tag
- egy notepad kell hozzá
- ha nincs jquery (1.7 vagy újabb) az oldaladon akkor azt is letölöd
- letölöd ezt is
- scriptek közé beteszed őket, jquery után legyen a turn.js<script src="......valahol a szervereden....../jquery.min.js">
<script src="......valahol a szervereden....../turn.min.js">- html <body>-ba bevered azt ami az oldalukon is látszik "Lets code" címmel
<div id="flipbook">
<div class="hard"> Turn.js </div>
<div class="hard"></div>
<div> Page 1 </div>
<div> Page 2 </div>
<div class="hard"></div>
<div class="hard"></div>
</div>
<script type="text/javascript">
$("#flipbook").turn({
width: 400,
height: 300,
autoCenter: true
});
</script>- minden div egy oldal szóval a csodaprogramodól html-be exportálod ki és oldalanként beteszed a kódjukat a fenti <div></div>-ekbe
-
Doink
aktív tag
Itt egy rossz megoldás mert az általad írt feltételeket ki kellene javítani:
(1 háromszög nem akkor egyenlő száru ha base === b_side !== c_side, hanem ha bármelyik 2 oldala egyenlő)
Vagyis lehet hogy jó csak a base nekem nem mond semmit egy háromszögről azon kívül hogy "az szokott alul lenni".<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Page Title</title>
</head>
<body>
<input id="a" type="number">
<input id="b" type="number">
<input id="c" type="number">
<input type="submit" onclick="calc()">
<div id="result"></div>
<script>
function getType(a, b, c) {
if ((a === b) && (b === c)) {
return "isosceles";
} else if ((a === b) && (b !== c)) {
return "equiletal";
} else if ((a !== b) && (b !== c)) {
return "uneven";
}
return "???";
}
function calc() {
const a = parseInt(document.getElementById("a").value);
const b = parseInt(document.getElementById("b").value);
const c = parseInt(document.getElementById("c").value);
document.getElementById("result").innerHTML = `${a} ${b} ${c} => ${getType(a, b, c)}`;
}
</script>
</body>
</html> -
Doink
aktív tag
-
Doink
aktív tag
-
Doink
aktív tag
-
Doink
aktív tag
Az event nevek nem stimmelnek.
-
Doink
aktív tag
-
Doink
aktív tag
Ha kicseréled a firebase részt egy JSON.parse()-ra akkor viszont lefutna az is. Az hogy hol akad el az meg oda van írva: 2649:49 és az a baja hogy egy undefined-on hívódik meg az entities() fgv.
Itt azért olyan kérdés is felmerül hogy nem-e egyszerűbb a d3.nest előtt összedobni ezt a struktúrát egy ciklussal mint utána 4-el. -
Doink
aktív tag
-
Doink
aktív tag
-
Doink
aktív tag
Amit te látni fogsz mert aktiválásnál beírod valami adatbázisba és amint gyanúsan sokszor használtak fel egy kulcsot különböző ip/ország/stb helyekről akkor visszavonod a licensz értelmében.
-
Doink
aktív tag
Azért esetedben felmerül a kérdés hogy létezik-e egyáltalán olyan fájl amit lehet védeni sokszorosítás ellen. Szerintem rendre nem az a bevett szokás hogy nem hagyjuk lemásolni, hanem nyugodtam másolhatja de addig nem fogja tudni használni amíg nem aktiválja / beregisztrál és fizet / stb.
-
Doink
aktív tag
Ha valamit csak ki akarsz írni amit másolhat akkor ha szerver oldalon állítód elő nem a böngészőjében javascriptel akkor abból a kliens semmit sem lát csak a végeredményt.
Ha nem lehet szerver oldalon előllítani akkor Uglify-olni lehet egyébként, ami annyit jelent hogy nehezen érthetővé teszi a kódot de a működését nem befolyásolja. Böngészőben megjelenített html-t és javascriptet nem lehet sokszorosítás ellen védeni, csak licenszel tudod korlátozni a felhasználási feltételeket.
-
Doink
aktív tag
-
Doink
aktív tag
-
Doink
aktív tag
-
Doink
aktív tag
-
Doink
aktív tag
Ezt a fát nem akarod kiiratni mert azt látod a böngészőben F12->source. <html> a fa csúcsa, annak van 2 gyereke <head> <body> és így tovább. A belső adatszerkezet lesz egy fa ahogy a gép tárolni fogja a memóriában hogy gyorsan tudj benne keresni és módosítani.
Ennek a libnek meg pont az a lényege hogy css selectorokkal tudj keresni/módosítani ebben a html-ben és ne kelljen stringkezelési műveletekkel bajlódni.
Ha mégis be szeretnéd járni a fát akkor a a dokumentációban találsz olyan metódust hogy .children() ami visszadaja egy node közvetlen gyerekeit és így már adja magát hogy rekurzívan elég egyszerű bejárni.A részfát úgy értettem hogy ha van az oldalon egy ilyened és neked kell a price és a name
<!-- többmillió html kód felette -->
<div id="product">
<p class="price">1</p>
<p class="name">name</p>
</div>
<!-- többmillió html kód alatta -->és amúgy az oldalon még van ezer más html tag mindenfelé akkor azt így csinálod:
var $ = cheerio.load(html);
var product = $("#product");
var result = {
price: product.children(".price").text(),
name: product.find(".name").text()
}és nem ezt:
var $ = cheerio.load(html);
var result = {
price: $("#product > .price").text(),
name: $("#product > .name").text()
}mert így kétszer végig fog menni az egész fán megkeresni a #product-ot.
Ettől függetlenül a cheerio oldalán van elég sok példa amit érdemes lenne átfutnod. -
Doink
aktív tag
A fenti kódot nodejs-ben futtattam mert a lényegi rész ugyan az google scriptben is:
var cheerio = cheeriogasify.require('cheerio');
function run() {
var response = UrlFetchApp.fetch("https://www.gearbest.com/smart-watches/pp_362705.html");
var $ = cheerio.load(response.getContentText());
var result = {
url: $("meta[property='og:url']").attr('content'),
price: $(".price_area > .goods_price > .my_shop_price").data('orgp'),
name: $(".goods-info-top > h1").text()
}
Logger.log(result);
}A cheerionak lassabbnak kell lennie amíg csak pár adatra van szükséged, ettől függetlenül így is elég gyors és ugyan úgy lehet rajta gyorsítani ahogy jquery-ben is tudsz (nem az egész fában keresel hanem csak részfában). Az hogy a google script-re milyen korlátozások vannak és ott miért ilyen lassú már maga az url lekérdezés is annak neked kell utánanézni, nodejs-ben 180ms alatt végez a felparseolással és az eredmény kiírással, google scripben pedig ugyan ez a művelet több mint 10 másodperc.
-
Doink
aktív tag
Szia, sima css selectorokkal:
var request = require('request');
var cheerio = require('cheerio');
request('https://www.gearbest.com/smart-watches/pp_362705.html', function (error, response, html) {
if (!error && response.statusCode == 200) {
var $ = cheerio.load(html);
var url = $("meta[property='og:url']").attr('content');
var price = $("meta[property='og:price:amount']").attr('content');
console.log(url, price);
}
}); -
Doink
aktív tag
-
Doink
aktív tag
A egyik megoldás az hogy ígéretet (Promise) adj vissza és belül az onsuccess-nél resolve-old, onerror-nál meg reject-eled.
this.getData = function(){
return new Promise(resolve,reject) => {
let query = db.valami_async_művelet()
query.onsuccess = function(result){
resolve(result)
}
query.onerror = function(err){
reject(err)
}
}
}Így fogod tudni meghívni:
ValamiService.getData().then((result) => {
// beteljesült az ígéret és a result-ban lesz az eredmény
}).catch(error) => {
// hiba
});Másik elegáns megoldás ha cold observable-t használsz (rxjs).
-
Doink
aktív tag
Az a hiba hogy a jelszo2-be teszed a trimelt stringet és utána nem csinálsz vele semmit.
Számok:var hasNumber = new RegExp(/\d/).test(jelszo2);Apró megjegyzés hogy a webes világban bevett szokás szerver oldalon ellenőrizni és visszaküldeni a hibát hiszen szerver oldalon úgyis mindig kötelező ellenőrizni mindenféle inputot.
-
Doink
aktív tag
Új hozzászólás Aktív témák
-
Fórumok
LOGOUT - lépj ki, lépj be!
LOGOUT reakciók Monologoszféra FototrendGAMEPOD - játék fórumok
PC játékok Konzol játékok MobiljátékokPROHARDVER! - 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ésFÁ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
- Xbox Series X|S
- iPhone topik
- Vigneau interaktív lokálblogja
- MWC 2026: Bajnoki címre pályázik a Xiaomi Watch 5
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Megtartotta Európában a 7500 mAh-t az Oppo
- Renault, Dacia topik
- Samsung Galaxy Watch8 és Watch8 Classic – lelkes hiperaktivitás
- Autóhifi
- ASUS routerek
- További aktív témák...
- Bontatlan! Playstation Portal 2 év garancia 2028.04.09-ig számlával!
- BESZÁMÍTÁS! 32GB G.Skill Trident Z Neo RGB 3600Mhz DDR4 memória garanciával hibátlan működéssel
- Gamer PC-Számítógép! Felsőkategória! R7 9800X3D / RX 9070XT / 32GB DDR5 / 2TB SSD / Noctua !
- Eladó oshiba dynabook satellite B551/D
- Xiaomi Redmi Note 14 / 6/128GB / Kártyafüggetlen / 12Hó Garancia
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest


