-
Fototrend
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
-
Sasos
senior tag
Mivel szedted így rendbe a kódot?
Console-ban van hibaüzenet, de pont ugyanazok ment a nem "piszkált" változattal. Így én nem tettem hozzá újabbat.
Ha rossz nyelvet is ad vissza a böngésző, a manuális állításnál akkor is minden nyelv esetén a beállított nyelvűnek azonosítja a böngésző az oldalt (kivétel a magyar).
Kipróbáltam telefonról, és németre átcsapva a nyelvet, szintén a default angol verziót nyitja be, ami nem is lenne gáz, mert ha csak az azonosítás lenne a gond átállítanám a default nyelvet magyarra. De az oldal nyelve továbbra is angol a böngésző(k) szerint.
Igen, minden próbálkozásnál gyalulom az előzményeket, cookie-kat, jelszavakat, űrlapelemeket.[ Szerkesztve ]
-
Karma
félisten
A teljes változatot a ctrlq Online Code Beautifierrel, a vágottat viszont nem ette meg, arra a JSFiddle TidyUp parancsát hívtam meg.
“All nothings are not equal.”
-
r4z
nagyúr
Ó, ez így nagyon jó Át is tudtam alakítani az XML-t JSON objektummá a HTML-en belül egy rejtett div-ben AJAX-szal, majd a div tartalmából létrehoztam a változót. Még egy kicsit tisztább is lett az adathalmaz.
Viszont amire nem jövök rá, hogy hogy indul be ez az egész összehasonlító folyamat
I don't love people. I love 911s, Astral Projection and french fries, in that order.
-
Karma
félisten
Ez a három szakasz a lényeg:
var manufacturers = _.groupBy(inputdata, function (product) {
return product.Gyarto;
});Azaz magyarra fordítva az underscore groupBy függvényt: "csoportosítsd az inputdata tömb elemeit a Gyarto property értéke alapján". Ezután a manufacturers egy olyan objektum, amiben a kulcsok a gyártók, az értékek pedig az oda tartozó termékek listája.
var manufacturerPrefixLengths = _.map(manufacturers, function (products, manufacturer) {
return {
manufacturer: manufacturer,
prefix: _.min(products.map(function (product) {
return product.Tipus.sameUntil(manufacturer);
}))
};
});Itt van az összehasonlítás meghívva. A map függvény veszi egy lista vagy objektum elemeit, ráhív egy függvényt egyesével mindre, az eredményeket pedig egy új listába fűzi össze. Más szóval transzformálja a listát.
Magyarul: "Minden gyártó-terméklista párt képezz le egy olyan objektumra, ami tartalmazza a gyártó nevét (manufacturer kulccsal), és az egyezések minimumát (prefix kulccsal)." A min függvény visszaadja egy lista minimumát.
A terméklistából prefixhosszlistát meg egy belső map képez, ami minden terméket leképez a gyártó nevével vett egyező szakasz hosszára.
var result = _.object(_.map(manufacturerPrefixLengths, function(x){return [x.manufacturer, x.prefix]}));
Ez az utolsó hívás pedig annyit tesz, hogy az előző lépésben generált listát, amiben a {manufacturer, prefix} objektumok voltak, egy valódi objektumra alakítja át.
“All nothings are not equal.”
-
Sk8erPeter
nagyúr
"Mivel szedted így rendbe a kódot?"
Én ezt szoktam ilyen célra használni a JSFiddle TidyUpján kívül: http://jsbeautifier.org/[ Szerkesztve ]
Sk8erPeter
-
r4z
nagyúr
Érthető
Egy dolgot mondj még meg, kérlek: miért lehet az, hogy hiába másolom be a kódot karakterről karakterre, és még a JSON objektumot is hozzá igazítom. hogy pont olyan legyen, mint nálad (és ami amúgy valid), nem hajlandó működni. JSFiddle-ön is működik.
Két dolgot csináltam vele összesen:
- belefoglaltam egy functionbe
- a function első sorában megadtam neki a változót, ami tartalmazza a JSON objektumot.A return product.Tipus.sameUntil(manufacturer); sornál viszont a Chrome konzolja Uncaught TypeErrror: cannot call method 'sameUntil' of undefined hibát dob.
I don't love people. I love 911s, Astral Projection and french fries, in that order.
-
Jim-Y
veterán
-
Fr3eWar
őstag
Sziasztok, kezdek a falnak menni.
Bocs ha nem a megfelelő topic de nem találtam jobbat.
Van akinek betölt ez az oldal:Még a firefox verziót nem próbáltam de Chrome-ban meg IE11 alatt próbálkozok, ne tölt be. Raktam fel 64bites java-t 32-es 7es java-t, aztán 32-es 6os javat. Minddel ugyanaz hiba nem engedélyezett. Mikor be van jelölve chrome alatt is hogy mindig fut.
-
Sk8erPeter
nagyúr
válasz Fr3eWar #4009 üzenetére
Még jó, hogy az összefoglalóba direkt belerakattam, hogy a JavaScript NEM ugyanaz, mint a Java... Ezek szerint nem lett túl hatékony. Van Java topic.
Nem értem, minek kell 2014-ben Java appletekkel kinevettetnie magát bármilyen fejlesztőnek, de gondolom ez valami legacy weboldal, amit megörököltél.Sk8erPeter
-
CSorBA
őstag
Szerintem Ő felhasználó, és használni szeretné Ezért kérdezi itt, hogy vajon a hiba nála van-e vagy sem.
-
Fr3eWar
őstag
Pontosan! csak használni szerettük volna az oldalt.
(#4013) Sk8erPete :
Közöm nincs a java-hoz semmilyen irányból.
Ezt találtam a keresőbe java szót beírva. És mivel a másik topic címe java programozás volt, így azt magamban kilőttem, mert nem érdekel a java programozás. És nem tudom mi a különbség a java script meg más között.De úgy sikerült megoldani, hogy a java control panelon, hozzáadtam az oldal címeit az engedélyezett oldalakhoz. És a biztonságot medium-ra állítottam.
[ Szerkesztve ]
-
Sk8erPeter
nagyúr
válasz Fr3eWar #4015 üzenetére
És mindezt nekem magamtól kellett volna kitalálnom, hogy mi a célod, hogy közöd nincs a weboldalhoz, hogy nem szakmai kérdésed van, és amúgy is micsoda szemétláda vagyok, hogy szóvá teszem, hogy semmi köze a topichoz annak, amit kérdezel. OK, vállalom. Sorry, túl sokan tévednek el.
De adtál legalább egy tippet: ezt a topicot is át kell nevezni JavaScript topicról JavaScript-programozásra, mert itt konkrétan arról van szó. És akkor félreértés sincs.[ Szerkesztve ]
Sk8erPeter
-
Fr3eWar
őstag
válasz Sk8erPeter #4016 üzenetére
Szépen tudod cifrázni a dolgokat.
De az első hozzászólásom szerintem egyértelmű, de tényleg lehetett volna egyértelműbb, ha a kettőspont helyett kérdőjelet tettem volna.
"Van akinek betölt ez az oldal:"
De az átnevezés lehet hogy lendítene a magamfajta noob-ok eltántorításán.
-
Sk8erPeter
nagyúr
-
leximester
tag
Sziasztok, nem értek a javascripthez, ezért lenne szükségem egy kis segítségre. Adott egy html fájl és sok .js, az egyik .js-ben van egy ilyen függvény:InputManager.prototype.restart = function (event) {
alert("teszt");
};
Arra lenne szükségem hogy ezt a függvényt megtudjam hívni C#-ból(windows phone-s app), viszont ehhez tudnom kéne a függvény nevét, próbáltam utánajárni a dolgoknak, de eddig nem jártam sikerrel, azt próbáltam hogy a function után beírtam egy nevet, de nem lett jó. Előre is köszi -
Jim-Y
veterán
válasz leximester #4019 üzenetére
Ha van egy InputManager objektumod, akkor azon a restart metódust meghívva tudod elérni ezt a függvényt.
Magyarázat:
Tehát javascriptben ha egy tömbön meghívsz egy pl indexOf() metódust ( [1,2,3].indexOf(3); ), az így lett implementálva:Array.prototype.indexOf = function(elem) { ... }
megj: a [] egy shorthand a var arr = new Array(); -re.
Megoldás:
Kell egy InputManager objektum:var inputManagerObject = new InputManager();
majd
inputManagerObject.restart(); // alert teszt
Hogy hogyan delegálj egy ilyen objektumot C#-ba abban nem tudok segíteni, nézz utána
[ Szerkesztve ]
-
Jim-Y
veterán
válasz leximester #4021 üzenetére
Igazabol egyszerubb lenne ha bemasolnad az eredeti kodot. Meg ha leirnad hogy mit szeretnel elerni es hogyan, az sem lenne utolso szempont :-)
[ Szerkesztve ]
-
Sk8erPeter
nagyúr
válasz leximester #4021 üzenetére
Pedig jó az, amit Jim-Y írt. Én sem értem sajnos ennyiből, mi a gond, tényleg látni kéne a kódodat, hogy pontosan mi vérzik el, és hol.
De ha jól értem, valami olyasmi, hogy callback-ként szeretnéd meghívni a .restart() metódust, és az nem megy. Vagy nem erre gondoltál?szerk.:
(#4023) : ebből még mindig nem tudtuk meg, konkrétan, pontosan mi a baj, hol hasal el a dolog, és hogyan csináltad C#-ban, hogyan JavaScriptben.
Ha a C#-kódban van a gond: C# programozás topic.[ Szerkesztve ]
Sk8erPeter
-
leximester
tag
válasz Sk8erPeter #4024 üzenetére
Szerkesztettem már az előző hozzászólásom csak jött egy áramszünet...
Szóval, az szépen megy hogy javascriptből hívjak meg C#-s függvényt stb, vissza fele is megy, amennyiben ilyen a függvény a js-ben:
function valami() {
alert("masvalami");
}Ahogy sikerült kivennem a kódból, a keyboard_input_manager.js-ben lévő
KeyboardInputManager.prototype.restart = function (event) {
event.preventDefault();
this.emit("restart");
};függvény felelős az újraindításért. Ezt szeretném c-ből meghívni. És ha ezzel megcsinálom a fentebb említett módszert, akkor nem működik. Remélem így már érthető a gondom.
[ Szerkesztve ]
-
Jim-Y
veterán
válasz leximester #4025 üzenetére
az event az egy click event lesz a restart gombon. Nálad azért undefined ,mert nyílván nem adtál meg a restart függvénynek egy click event objektumot mint bemenő paramétert.
Próbáld ki, hogy ott ahol restartot hívnál, ott írj egy
<keyboardInputManager>.emit("restart"); -ot.[ Szerkesztve ]
-
Karma
félisten
válasz leximester #4025 üzenetére
Ja most látom, ez már túl lett lépve, bocsi
De azért nem törlöm ki.---
Az a helyzet, hogy a WP WebBrowser felől csak olyan JavaScript dolgokat tudsz meghívni, amik globálisan elérhetőek. A valami függvényed egy globális függvény, így kapásból elérhető; viszont a kérdéses InputManageres történet valószínűleg el van fedve az ilyen behívások elől.
Ez most hack, de például csinálhatnál az oldalad végénél egy globális példányt ebből, és azon meghívhatod a metódust.
<script type="text/javascript">
var globalInputManager = new KeyboardInputManager();
</script>És utána az appodban nyomsz egy ilyet:
webBrowser.Navigate("javascript:globalInputManager.restart()");
Akkor talán mennie kéne.
---
Na visszatérve az új problémára, az egyszerűbbik megoldás az inputmanager meghackelése lenne (ha az event undefined, akkor ne akarjon preventDefaultot hívni), illetve C# oldalon is lehet hákolni.
webBrowser.Navigate("javascript:globalInputManager.restart(document.createEvent('hack'))");
[ Szerkesztve ]
“All nothings are not equal.”
-
trisztan94
őstag
válasz leximester #4025 üzenetére
Csak halkan, mellékesen megjegyzem, hogy az event.preventDefault() _elvileg_ deprecated, event.defaultPrevented;-et kell használni (nincsenek zárójelek). Legalábbis a firebug nekem mindig ezért nyavalyog.
https://heureka-kreativ.hu
-
Karma
félisten
válasz leximester #4028 üzenetére
Mondjuk stringből Urit csinálni nem nagy kaland, ellenben ja, amit írtam a "javascript:" előtag nélkül az InvokeScripttel tényleg jobb.
“All nothings are not equal.”
-
Jim-Y
veterán
válasz leximester #4028 üzenetére
És miért szórakozol C#-al ahelyett, hogy ki-chekcoutolnád a projektet, és amennyiben szabad, továbbfejlesztenéd magadnak az eddigi kódot? Főleg, hogy annyival nem tudod megoldani a fejlesztést, hogy meghívogatsz pár függvényt és kész. Vannak belső állapotai a függvényeknek amin az egész alkalmazás áll, vagy bukik. Azzal is törődni kell.
trisztan: nem az ő kódjában van az preventDefault.
[ Szerkesztve ]
-
Karma
félisten
Igazából nem ennyire drámai a helyzet. Rengeteg 2048 wrapper van már most is a Store-ban, ami nem csinál többet, mint WebBrowserben futtatja a játékot, és így behívogatva ad egy-két extra menüpontot...
Meg azért nem mellesleg a hibrid alkalmazások így működnek általában.
[ Szerkesztve ]
“All nothings are not equal.”
-
Jim-Y
veterán
Erről esetleg tudnál írni 1-2 sort, hogy hogy kell elképzelni? Van egy böngészőben futó alkalmazás, mint most a 2048, és az én C#/Java/akármi kódom közbe tud szólni, meg tudja hívni az alkalmazás egyes függvényeit?
Én eddig sajnos csak egy !JS nyelvben csináltam olyat, hogy natív javascript kódot futtattam, így nincs ebben nagy tapasztalatom :/
[ Szerkesztve ]
-
Sk8erPeter
nagyúr
válasz trisztan94 #4029 üzenetére
Hogy micsoda? Az event.preventDefault() NEM deprecated, hogy lenne már az?!
https://developer.mozilla.org/en-US/docs/Web/API/event.preventDefault#Notes
meg
http://api.jquery.com/event.preventdefault/Szerintem te ismét kevered a szezont a fazonnal:
"event.returnValue is deprecated. Please use the standard event.preventDefault() instead"
http://stackoverflow.com/questions/20045162/event-returnvalue-is-deprecated-please-use-the-standard-event-preventdefault
https://github.com/angular/angular.js/issues/4557
https://drupal.org/node/2170221-->
http://bugs.jquery.com/ticket/14282
http://bugs.jquery.com/ticket/14320Nagyon nem ugyanaz, hogy az event.returnValue deprecated, vagy a másik...
Ráadásul még az sem stimmel, hogy a Firebug dobná, mert a Chrome konzolja írja ki ezt, Firebug nem sír érte. (Kipróbáltam, mert pont erre emlékeztem.)
Ne vezessük félre a népet téves információval, mielőtt utánanéznénk, légyszi.Sk8erPeter
-
leximester
tag
Megoldottam a dolgot, lehet csúnya megoldás de hatásos, függvénybe tettem a restart gomb click eventet, és ezt a függvényt hívom meg a c# kódból. Köszönöm az eddigi segítséget!
-
Karma
félisten
Alapvetően jól képzelted el, erről van szó: adott egy többé-kevésbé komplex webalkalmazás, lokálisan vagy online megnyitva, amit egy natív mobilalkalmazás futtat egy beágyazott böngészőben. Platformonként változik, hogy milyen csatornán keresztül (ld. az előbbi InvokeScript WP-n, navigációt Androidon és iOS-en), de kommunikálhat a szkript is kifelé (ez pl. Androidon a legerősebb, mert közvetlenül ki tud hívni Java metódusokra).
Lehet hackelni is, mint az előző kérdésvonulatban, de ha az ember nulláról épít hibridet, jobban jár ha megtervezi magának az interfészt előre
Én egy olyan alkalmazásban használtam ilyen architektúrát, ahol a backenden generált tetszőleges tartalmú kérdőíveket (mini webalkalmazásokat) lehet generálni, a kliensek letöltik ezeket, és utána a felhasználók offline kitölthetik újra meg újra. A JS interfész ott jön a képbe, hogy a kitöltés eredményét ezen keresztül szivárog át a Java kódhoz, ami a tárolást és feltöltést kezeli.
“All nothings are not equal.”
-
trisztan94
őstag
válasz Sk8erPeter #4035 üzenetére
Valóban
A minifikált jQuery-re írta azt, hogy A getPreventDefault() használata elavult. Használja helyette a defaultPrevented-et.
Ezt kevertem a preventDefault()-al
https://heureka-kreativ.hu
-
Karma
félisten
Huh, most nézem, hogy a közepe kicsit zanzás lett. Mobilon írtam, és nem vettem észre
Szóval az első bekezdés vége ez akart lenni:
Platformonként változik, hogy milyen csatornán keresztül tud a natív kód a JS felé szólni. WP-n mint láthattuk az InvokeScript metódus jó erre; Androidon és klasszikusan iOS-en(*) a "javascript:"-es sémára navigálás működött (ezzel példáloztam korábban).
A szkriptek visszafelé is kommunikálhatnak egyébként, WP-n egy globális függvényt hívhat meg a JS; iOS-en az aktuális URL változását lehet figyelni; Androidon meg a legerősebb, mert közvetlenül ki tud hívni Java metódusokra – persze csak amiket a natív alkalmazás előre kiajánl a JS bridge-nek.
(*): iOS7-en bejött a JavaScriptCore, ami elméletileg közvetlen összeköttetés a JS és Obj-C világ között. De erről nem tudok semmit.
[ Szerkesztve ]
“All nothings are not equal.”
-
Karma
félisten
-
martonx
veterán
-
trisztan94
őstag
Múltkor - hibásan - mondtam azt, hogy az e.preventDefault() helyett e.defaultPrevented-et kellene használni. Persze azóta már fel lettem világosítva, hogy hülye vagyok, rosszul emlékeztem valamire, ezt tudom.
Most vágom az egyik tutorial vidim, ott viszont egy <a>-ra e.defaultPrevented-et használtam, és valamiért pontosan ugyanaz történik, mintha e.preventDefault() lenne használva, tehát nem fut le az alapértelmezett esemény.
Na de miért? MDN szerint az e.defaultPrevented egy boolean értéket ad vissza arról, hogy az alapértelmezett esemény lefutása meg lett-e gátolva.
Nem lehet, hogy azzal, hogy azt hívtam meg, úgy interpretálta a böngésző (Chrome), mintha return false-t írtam volna? Vagy miért van ez? Console nem dob rá hibát, sem firebug.
[ Szerkesztve ]
https://heureka-kreativ.hu
-
fordfairlane
veterán
válasz trisztan94 #4047 üzenetére
Most vágom az egyik tutorial vidim, ott viszont egy <a>-ra e.defaultPrevented-et használtam, és valamiért pontosan ugyanaz történik, mintha e.preventDefault() lenne használva, tehát nem fut le az alapértelmezett esemény.
Nálam Firefoxban lefut, tehát nem ugyanaz történik. Nem is történhet ugyanaz.
x gon' give it to ya
-
Sk8erPeter
nagyúr
válasz trisztan94 #4047 üzenetére
Nem akarok már megint köcsög lenni, nem rohadékságból kérdezem, bár tudom, hogy én vagyok a beszólogatós szemét, de miért készítesz tutorialt olyan témáról, ahol még ingoványos talajon állsz? Bár megértem, hogy örülsz, ha kapsz pozitív feedbacket, de én nem mernék addig készíteni tutorialt, amíg nem tanultam meg mondjuk az alapvető webfejlesztést elősegítő eszközök használatát, az olyanokét, mint a webfejlesztő panel (Chrome Developer Tools (Ctrl+Shift+I vagy F12), Firefox beépítettje (Ctrl+Shift+I) vagy Firebug (extension-telepítés után F12), stb.), hogy kiderítsem, adott esetben mi lehet a gond.
Na, de ez volt az OFF része, válaszolok is a kérdésre.
Lenyitod az említett fejlesztői paneleket, és megtudod a választ, a linkre kattintás utáni állapotokat mutatom, mindenhol bekereteztem a lényeget:Chrome:
Network fül:
Console:
"Refused to display 'https://www.google.hu/' in a frame because it set 'X-Frame-Options' to 'SAMEORIGIN'."x-frame-options:SAMEORIGIN
Firefox:
"Load denied by X-Frame-Options: https://www.google.hu/ does not permit cross-origin framing."====
Átírod a http://google.hu-t http://example.com-ra, és BANG:
http://jsfiddle.net/aA8d9/2/VAGY kipróbálod ezt a saját kis tesztkörnyezetedben, ahol nem egy frame-be töltöd be, és megint csak BANG, váó, működik.
A miértek a hibaüzenetekből kideríthetők, de kérdezz, ha nem tiszta.
Javasolt olvasnivaló pl.:
https://developer.mozilla.org/en-US/docs/HTTP/X-Frame-Options[ Szerkesztve ]
Sk8erPeter
-
Zedz
addikt
Sziasztok,
El akadtam a JS tanulásban és segítséget szeretnék kérni. A gond a document.getElementsByName(...)-mel van. Egyszerűen nem akar sikerülni.
Példa: link
Ha oda írom az indexet, pl [0], akkor az első gomb értékét kiírja az alert ablakba. De én olyat szeretnék, hogy mindig azt írja ki amire kattintok. Tutorialokban mindenhol index nélkül használják, de nekem egyszerűen nem akarja az igazságot. Miért?
Új hozzászólás Aktív témák
- HP Probook 340S G7 i5-1035G1/8GB/256SSD/Windows 11 -10% Csak ameddig a készlet tart!89.780 Ft
- iPhone 14 Pro 128 GB Space Black, 11 hónapos, kártyafüggetlen, 2024. május végéig garis , akku 91%
- Asus VivoBook X509JA-BQ904T
- HP EliteBook 640 G9 Ezüst (14" / Intel i5-1235U / 16GB / 512GB SSD / Win 11 Pro) -10% Most 203.990 F
- Lenovo M810z AIO Core I5 6400 4x2700/8GB/120G SSD/wifi/cam 21,5 -10% 66.950 ft