- Luck Dragon: Asszociációs játék. :)
- gban: Ingyen kellene, de tegnapra
- bitpork: MOD Júni 13 Augusztus 2- szombat jelen állás szerint.
- Gurulunk, WAZE?!
- Argos: Szeretem az ecetfát
- Brogyi: CTEK akkumulátor töltő és másolatai
- ubyegon2: Airfryer XL XXL forrólevegős sütő gyakorlati tanácsok, ötletek, receptek
- f(x)=exp(x): A laposföld elmebaj: Vissza a jövőbe!
- Sub-ZeRo: Euro Truck Simulator 2 & American Truck Simulator 1 (esetleg 2 majd, ha lesz) :)
- Parci: Milyen mosógépet vegyek?
-
LOGOUT
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
válasz
sztanozs #3394 üzenetére
"Amit meg tudsz hívni, az a lejátszó publikus 'play' metódusa - de arról ugye tudja a lejátszó, hogy nem a gomb váltotta ki, hanem egy külső script hívta meg - így nem is számolja a lejátszást."
Mondjuk erről nem lenne rossz látni inkább valami hivatalos állítást, hogy mik okozhatnak különbséget a lejátszásban, és az API-n keresztüli lejátszás miért okozza azt, hogy az nem számolódik bele a lejátszásba. De simán el tudom képzelni, hogy az lenne az indok, hogy nincs közvetlen "user interaction", és ha automatikusan lejátszódik pl. egy reklámvideó (pont amilyet a kérdező akar beágyazni), akkor azt nem biztos, hogy a felhasználó meg is akarta nézni, mert esetleg akaratán kívül automatikusan lejátszódott a videó. Ebben az esetben viszont amit szeretne, az nem is megvalósítható, legalábbis az eddigi próbálkozásokkal (de hogy az előbb a Java applet hogy jött ide, na arra nagyon kíváncsi lennék... szerk.: rendben, azóta kiderült Tapsi hozzászólásából, hogy csak nagy tévedésből keverte ide).
-
válasz
Sk8erPeter #3398 üzenetére
Bocs, összekevertem egy korábbi hozzászólással, amiben kattintgatós játékhoz kértek segítséget. Mea culpa.
-
Sk8erPeter
nagyúr
Te nagyon erőlteted mindenhol ezt a Flash-vonalat...
De akkor már indokold is meg. Flash-ben hogyan intézed el, hogy számolja a plusz látogatottságot? Próbálkoztál már ilyennel, onnan tudod, vagy csak tippelsz?
Java applettel megoldod, hogy számolja a látogatottságot, klikkeljen, amikor a rendes API-n keresztül nem?Ezt fejtsd már ki légyszi bővebben, tényleg nagyon érdekelne, készítettem már Java appletet, de nem igazán értem, te mégis mire gondolsz... (Arról nem is beszélve, hogy a Java-futtatós engedélykéréstől az átlagfelhasználó sanszos, hogy összeszarja magát.)
-
megalover
tag
válasz
sztanozs #3394 üzenetére
Áááá, sejtettem, így viszont ugrott a koncepcióm.
Valahogy sejtettem, mert eddig még sehol nem láttam olyat, ahol meg tudták volna ezt oldani. Az a különös számomra ebben az egészben, hogy beágyazott videóknál egy egyszerű kattintással való elindítást már megtekintésnek számol. Viszont még egy megoldást lehetségesnek tartanék, legalábbis ha van rá ilyen script utasítás... Szóval olyat nem tudok, hogy a képernyő egy adott koordináta pontjára szimuláljon/végezzen egérkattintást az oldalamon? Mert az lehet hogy működne - igaz hogy a különböző kijelző felbontásoknál ez is problémás lenne - vagy ilyen esetben is meg tudná azt különböztetni az API a valódi egér kattintástól?
-
sztanozs
veterán
válasz
sztanozs #3393 üzenetére
Most, hogy megnéztem, szerintem egyértelműen nem fog menni.
Nem tudom mondjuk, hogy HTML 5 lejátszót is lehet-e beilleszteni - ott valószínűleg meg lehetne hívni a megfelelő html-elem onclick eseményét. Viszont a flash alapú lejátszónál szinte esélytelen, hogy js-ből click eseményt generálj a lejátszó belső kontolljára (play gomb). Amit meg tudsz hívni, az a lejátszó publikus 'play' metódusa - de arról ugye tudja a lejátszó, hogy nem a gomb váltotta ki, hanem egy külső script hívta meg - így nem is számolja a lejátszást. -
Sk8erPeter
nagyúr
válasz
sebastien19 #3390 üzenetére
Most konkrétan hirtelen a mikéntjét nem tudom, de rosszakaró biztos megoldja, mert kliensoldalról elvileg azt küldesz el, amit akarsz.
A karakterkódos scriptet azóta módosítottam, mert kiderült, hogy ha az egérgomb eseménykezelőjéből return false-szal térek vissza, akkor a fókusz (Chrome-ban legalábbis) átugrik a jsFiddle-oldalon a JavaScript-kódszerkesztő részre (az meg elég idegesítő, mert pont a funkcióját nem tölti be jól, ha itt futtatod), úgyhogy átírtam úgy, hogy ellenőrzöm, a jsFiddle-oldalon történik-e épp a végrehajtás, és a bal, középső vagy jobb egérgomb lett-e lenyomva, ha igen, true-val térek vissza; így már nem ugrik át a fókusz:
http://jsfiddle.net/Sk8erPeter/EAjYe/
A script mindig az utolsó lenyomott gombot írja ki, tehát értelemszerűen ha az input mezőbe klikkelsz, egy Ctrl+X-et úgy fog kiírni, hogy előbb kiírja a Ctrl-t (17-es keycode), majd utána az X-et (88-as keycode).
-
sebastien19
csendes tag
válasz
Sk8erPeter #3385 üzenetére
JavaScripttel lehet ellenőrizni, hogy milyen gomb lett lenyomva a billentyűzeten vagy az egéren, erre korábban írtam egy szemléltető kódot, amit itt ki tudsz próbálni:
http://jsfiddle.net/Sk8erPeter/EAjYe/
A baj viszont az, hogy elvileg az event object módosítható, meghamisítható, így talán csak a másodpercenkénti irreálisan magas kattintásszámot tudnád kiszűrni kliens- és szerveroldalon egyaránt. Na, hogy ez mennyi, az már jó kérdés.Köszi!
Azt kifejtenéd bővebben, hogy az event object módosítható? Hogyan?
Illetve a próba Scriptben hogy látszik mondjuk egy Ctrl+X? -
megalover
tag
válasz
Sk8erPeter #3388 üzenetére
Köszi így már sikerült. Beillesztettem a saját videóm ID-jét a kódba, és leteszteltem. Sajnos semelyik esetben sem számolta a youtube, csak amikor a videóra történő kattintással indítottam el. A külső linkes indításnál, illetve az automatikus indításnál egyáltalán nem számol még mindig...
-
Sk8erPeter
nagyúr
válasz
megalover #3387 üzenetére
De pont azt mondom, hogy annál a videónál amikor a YouTube-on közvetlenül frissítgettem, akkor sem változott a látogatottság száma, hogy miért, azt nem tudom - én a cookie-kban való tárolásra tippeltem eddig, de a Te videód ellentmond ennek.
Nem írtad le, melyik résznél akadtál el. Az oldalon részletes segítség van hozzá, hogy kell beüzemelni.
Itt van további segítség.Vegyük azt, hogy van egy ilyen dived, amibe belekerül majd a videó:
<div id="youtube-player-container"> </div>
az oldalad head-részében include-olod a jQuery-t ÉS a TubePlayert:
<script type="text/javascript" src="{your_path_to}/jquery.min.js"></script>
<script type="text/javascript" src="{your_path_to}/jQuery.tubeplayer.min.js"></script>nyilván a {your_path_to} részt ki kell cserélni a saját elérési utadra.
Aztán a head-részbe belerakod a példakódot így:
<script>
$(document).ready(function () {
$("#youtube-player-container").tubeplayer({
width: 600, // the width of the player
height: 450, // the height of the player
allowFullScreen: "true", // true by default, allow user to go full screen
initialVideo: "DkoeNLuMbcI", // the video that is loaded into the player
preferredQuality: "default", // preferred quality: default, small, medium, large, hd720
onPlay: function (id) {}, // after the play method is called
onPause: function () {}, // after the pause method is called
onStop: function () {}, // after the player is stopped
onSeek: function (time) {}, // after the video has been seeked to a defined point
onMute: function () {}, // after the player is muted
onUnMute: function () {} // after the player is unmuted
});
$.tubeplayer.defaults.afterReady = function($player){ $("#youtube-player-container").tubeplayer("play"); };
});
</script>itt a DkoeNLuMbcI részt le kell cserélned a saját videód azonosítójára (ennél a videónál a cím így néz ki: http://www.youtube.com/watch?v=DkoeNLuMbcI, itt ebből tehát a v értéke). Mivel szerepel benne a
$("#youtube-player-container").tubeplayer("play")
sor is, ezért elvileg egyből le kell játszania a videót az oldal betöltődése után.=============
Na, de időközben inkább készítettem neked egy online demót, ahol egyből láthatod a kódot is.
>>> http://jsbin.com/irebiw/1/edit
Ha valahol elakadtál, kérdezz nyugodtan.
-
megalover
tag
válasz
Sk8erPeter #3386 üzenetére
Sajnos nem tudtam működésre bírni a tubeplayert, vagy csak túl hülye vagyok a javascriptekhez. Mindenesetre azt láttam, hogy az ottani példában szereplő videónál nem számolja a nézettséget. Ez elég volt hozzá, hogy fel is adjam a dolgot. Ha valaki segítene egy megoldást találni, hogy hogyan lehetene indításra bírni auto-kattintással a videót,, azt nagyon megköszönném. Sajnos én nem vagok webprogramozó, úgyhogy ebbe beletört a bicskám..
-
Sk8erPeter
nagyúr
válasz
megalover #3382 üzenetére
Tesztelted is a TubePlayert a saját oldaladon, a saját videódnál, vagy csak tippeltél?
Én nem vágom, mert nem próbálgattam még a nézettségi adatokat, ilyen YouTube-látogatottsággal még sosem kellett szórakoznom, főleg nem trükközgetéssel, a TubePlayer oldalán belinkelt videóra meg hiába frissítgetek, most nem változik ettől a látogatószám. Ezért feltételeztem, hogy cookie-tól függ.
Ennyi infó birtokában nehéz bármit mondani, mivel a Te oldaladon sem látom a plugint, így kipróbálni sem tudom. Azt láttam, hogy ha a videódra kattintgatok, nálad változik a látogatószám, ellentében az előbb belinkelt videóval. Szóval ezt nem vágom.
Azt a cikket, aminek utánanéztél, belinkelhetnéd. -
Sk8erPeter
nagyúr
válasz
sebastien19 #3383 üzenetére
Itt már adtam választ:
http://prohardver.hu/tema/php_kerdesek_2/hsz_13344-13344.htmlDe valóban inkább itt folytassuk.
-
megalover
tag
válasz
sebastien19 #3383 üzenetére
Most billentyű kombináció, vagy makró?! Mert a kettő nem ugyanaz... Én már csak tudom, makrókat programozok!!
-
sebastien19
csendes tag
Üdv!
Egy adott oldalon szeretnék egy olyan funkciót, játékot, aminek egy része, hogy kattintgatni kell. Mivel a kattintgatás gyorsasága befolyásolja az elért pontszámot, az érdekelne, hogy milyen eszközök vannak arra, hogy azt figyeljem használ-e valamilyen segédeszközt. Pl. nyilván, ha túl gyorsan jönnek a kattintások, amit ember nem tud reprodukálni, akkor valszeg robotot használ. De pl. ha ezeket hotkey-ekkel hívja elő, arra rá lehet jönni, valahogy érzékelhető, hogy mit csinál az oldalon, vagy csak az, hogy hol van a kurzor, és mikor kattint? Meg lehet különböztetni a valós kattintást a makró általitól? A billentyűkombinációk láthatóak valahogy? -
megalover
tag
válasz
Sk8erPeter #3381 üzenetére
Nézd meg az általam küldött oldalt, és kattintgass rajta... meg fogod látni, hogy ahányszor csak rákattintasz mindig fogja számolni a kattintásodat! Természetesen ha az indítasok/lejátszások között mindig nyomsz előbb egy oldalfrissítést is! Valahol még azt is olvastam erről, hogy egy gépről egy videóra max. 300 megtekintést számol a youtube! Szóval kellene számolnia, de sajnos a tubeplayer nem számol. Viszont az én módszeremnél igen - akár egy IP-ről többször is - igaz hogy csak akkor ha ténylegesen kattintás történik a videón! Mármint hogyha kattintással elindítja valaki a videót, azt fogja nézettségnek számolni...
És még egy apró megjegyzés: állítólag a youtube csak a saját oldalán megnyitott videó lejátszásokat számolja most már a nézettségi adatoknál. (ha a 'native' jelző ezt jelenti, mert angolul volt a cikkben ahol olvastam, mivel utánanéztem ennek is?!) Ha ez igaz, akkor ezt a dolgot nekem már sikerült valahogy egy "kis trükkel" kijátszani, de a videó kattintással történő elindítása kell hozzá, amit még nem tudom hogy hogyan oldjak meg...
-
megalover
tag
válasz
Sk8erPeter #3376 üzenetére
Hát nekem úgy tűnik, hogy ennél a tubeplayernél sem számolja a nézettséget a youtube... Még ötlet valaki?
-
megalover
tag
válasz
Sk8erPeter #3376 üzenetére
Akkor ezt hogy kéne bele tenni, csinálni egy háttérben (vagyis nem látszódó) 'player' gombot és oldalbetöltésnél arra kattintani a .click-es módszerrel? Elég suta vagyok javascriptből.
-
megalover
tag
válasz
Sk8erPeter #3374 üzenetére
Gondoltam, hogy megkérdezitek majd.
Az lenne a célom, hogy a youtube számoljon nekem a videóimnál látogatottságot. Viszont a beépített autoplay opcióval ezt nem számolja bele a statisztikában. Mivel mikro site-okról van szó, amit a látogatók többsége (999 userből kábé 998) csak megnéz, de a videóim elindítására nem kattintanak rá. Ezért nem is számolja a youtube. Csak akkor fogja számolni, ha valahogy helyettük le tudom kattintani a videót hogy elinduljon magától... De ne az autoplay-el, mert akkor ugye nem fogja plusz látogatónak számolni. Szóval röviden csak ennyi.
Köszi a tippeket, megnézem. Dobtam pü-t...
-
Sk8erPeter
nagyúr
válasz
megalover #3373 üzenetére
Igazából mi a cél? Videó automatikus lejátszása?
Mert akkor használhatnád a YouTube JavaScript Player API-t:
https://developers.google.com/youtube/js_api_reference
vagy egy erre épülő jQuery plugint:
http://www.tikku.com/jquery-youtube-tubeplayer-plugin#tubeplayer_tutorial_2 -
megalover
tag
Kedves Programozó Társaim!
Segítségeteket szeretném kérni, de az is lehet hogy ez egy kivitelezhetetlen feladat lesz... én előre szóltam!
Szóval adott a probléma: oldalba ágyazott youtube videón szeretnék javascripttel "magától kattintást" végeztetni. Tudom-tudom, van itt egy "swf object" nevű kisebb probléma, hogy ti. a lejátszót vezérlő 'player' objektum, amire kattintani kellene, az nem egy rendes html elem hanem benne van egy ilyen swf object-be applikálva... Na most hogyan lehet ezt megoldani, vagy ha nem lehet sehogyan, akkor arról győzzetek meg alaposan engem...
Köszi:
megalover -
spammer
veterán
válasz
Sk8erPeter #3371 üzenetére
Köszönöm, akkor kipróbálom majd ezt a módszert is
Még egyszer köszönöm mindenkinek!
-
Sk8erPeter
nagyúr
válasz
spammer #3370 üzenetére
Tessék, gyors favágó megoldás:
http://jsfiddle.net/Sk8erPeter/XeHt2/2/
felhasználom a Bootstrapet és a Font Awesome-ot is, lásd External Resources panel.
-
spammer
veterán
válasz
Sk8erPeter #3367 üzenetére
Tudom
Amúgy élesben már nem csak sima szöveget használok, hanem html formázottat. A "data"-snál már nem lehet html kódot beleírni, hiszen tag-ben van már eleve. Mármint:
Ebből:
<div> <a data-show-text="Mutat" data-hide-text="Elrejt" href="#" class="toggle_link" id="toggle_link">Mutat</a>
Ez nem jó:
<div> <a data-show-text="<i class="arrow-down"></i>Mutat" data-hide-text="<i class="arrow-up"></i>Elrejt" href="#" class="toggle_link" id="toggle_link">Mutat</a>
Az i class-os dolog a Font Awesome-hoz kell.
Amúgy nem többnyelvű az oldal, 2 helyen van összesen használva, nem is lesz később módosítva, de ha igen, akkor nem tart semeddig átírnom a bedrótozott szöveget.
-
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
-
Jim-Y
veterán
válasz
Sk8erPeter #3365 üzenetére
Köszi a linket, ezt nem ismertem, mármint, hogy ilyen esetben a return false e.preventDefaultot jelent
meg ezt a .data-t is átnézem majd, ezzel se találkoztam még -
Sk8erPeter
nagyúr
válasz
spammer #3366 üzenetére
Az a "var" nem egy mágikus valami, csupán egy kulcsszó a változók deklarálására...
Amúgy azzal a kóddal az a para, hogy be van drótozva a JS-kódba a magyar szöveg, pedig lehet, hogy mondjuk az oldal többnyelvű, meg lehet, hogy könnyebben akarsz változtatni rajta, így azt szeretnéd, hogy csak a HTML-kódba kerüljön bele, itt van egy ilyen megoldás, vegyítve Jim-Y kódját és a .data()-t:
-
spammer
veterán
válasz
Sk8erPeter #3364 üzenetére
Köszi, ezek is jól néznek ki, el vagyok látva rendesen
Amúgy a fentiek csak a példák, amiket a linkelt oldalról kimásoltam
Élesben már normális neveket adtam mindenhol. (#3361) Jim-Y által írt "var"-os megoldást megcsináltam, tökéletesen működik (legalábbis hibát nem vettem észre eddig
)
-
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 -
Sk8erPeter
nagyúr
válasz
spammer #3363 üzenetére
Azt javasolnám, hogy használj beszédesebb id-kat és class-okat, mert nagyon gondban leszel később, amikor újból meg kell nézni a kódodat, hogy most ez miért is épp #toggle3, a másik meg miért kapott .toggle3 class-t (miért ugyanaz a kettő, csak az egyik id, a másik class?), stb... Inkább legyen hosszabb neve, de legyen beszédes.
Csak érdekességként még ilyen megoldás is létezik:
http://jsfiddle.net/Sk8erPeter/XfDN6/Aztán másik lehetőség, ha nem akarod bedrótozni a szöveget a JS-kódba, használhatsz .data()-t:
-
spammer
veterán
Kösz srácok, közben sikerült a span megoldással
$(document).ready(function(){
$('#toggle3').click(function() {
$('.toggle3').toggle('slow');
$('.toggleLink').toggle('fast');
return false;
});
});De kipróbálom a var label megoldást is
-
spammer
veterán
Most már értem, köszi
Szerintetek az kivitelezhető, hogy a link szövege megváltozzon a toggle funkció után. Arra gondolok, hogy alapból például "mutat" a link, ha rányomok, megjelenik a div, de ezután a link szövege "elrejt" lesz. Tehát a js animáció és a div megjelenítése után más szöveget mutatna a link.
<a href="#" id="toggle3">Mutat</a>
<a href="#" id="toggle3">Elrejt</a>Gondolom ahhoz, hogy a szöveget módosítani tudja a js, lehet, hogy egy span tagbe kellene rakni és úgy lehetne rá hivatkozni.
<a href="#" id="toggle3"><span id="toggleLink">Mutat</span></a>
<a href="#" id="toggle3"><span id="toggleLink">Elrejt</span></a>
Jól gondolom, vagy túlbonyolítom?
Meg lehet ezt oldani egyszerűen?
-
-
Jim-Y
veterán
válasz
spammer #3356 üzenetére
Ott írták, rögtön az elején
"Also you create the jQuery onload() function below to add your functions."
$(function() {
// jQuery functions go here.
});És tudjuk, mert ugye inkább a hivatalos referenciát nézzük!
, hogy ezek ekvivalensek:
All three of the following syntaxes are equivalent:
$(document).ready(handler)
$().ready(handler) (this is not recommended)
$(handler) -
Jim-Y
veterán
válasz
spammer #3352 üzenetére
Na mindegy, nálam így működik..
<!DOCTYPE HTML>
<html lang="hu-HU">
<head>
<title>Teszt</title>
<meta charset="UTF-8">
<script src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$('#toggle3').click(function() {
$('.toggle3').toggle('slow');
return false;
});
});
</script>
</head>
<body>
<a href="#" id="toggle3">Animated Toggle</a><br /><br />
<div class="toggle3" style="display:none; background-color:#4CF;width:100px;height:100px;"></div>
</body>
</html>raggg: lemaradt egy zárő ;
-
-
spammer
veterán
-
spammer
veterán
Jók, direkt egy csináltam egy új, üres html-t tesztelésre, mert nem működött élesben.
Ennyi az egész kompletten:
<!DOCTYPE HTML>
<html lang="hu-HU">
<head>
<title>Teszt</title>
<meta charset="UTF-8">
<script type="text/javascript" src="scripts/jquery-1.9.1.min.js"></script>
<script type="text/javascript">
$('#toggle3').click(function() {
$('.toggle3').toggle('slow');
return false;
});
</script>
</head>
<body>
<a href="#" id="toggle3">Animated Toggle</a><br /><br />
<div class="toggle3" style="display:none; background-color:#4CF;width:100px;height:100px;"></div>
</body>
</html>a linkelt oldalakon ez működik, helyben nem, mert a linkre kattintáskor csak a "#" jelet írja az url végére (test.html#), azaz "üres" hivatkozásnak veszi és nem fut le a script vagy én nem tudom.
-
spammer
veterán
Van ez a jQuery toggle funkció: [link]
A linkelt oldalon működik, de saját html-ben már nem működik, akkor sem, ha szó szerint kimásolom a linkelt oldalról a kódot. Ha jsfiddlre bemásolom [link], akkor megint jó. WTF?
Itt a teszt.html head-je:
<head>
<title>Teszt</title>
<meta charset="UTF-8">
<script type="text/javascript" src="scripts/jquery-1.9.1.min.js"></script>
<script type="text/javascript">
$('#toggle3').click(function() {
$('.toggle3').slideToggle('fast');
return false;
});
</script>
</head>Jó a js fájl elérési útja is, ellenőriztem. Mi hiányzik, vagy mi baja lehet?
szerk: a body-n belüli hivatkozás és div is szó szerint ki van másolva, és mégsem működik a teszt.html-ben.
-
martonx
veterán
válasz
Sk8erPeter #3344 üzenetére
Semmit, szét vagyok csúszva
-
gyga
senior tag
válasz
Sk8erPeter #3342 üzenetére
csak az első szám karakter pozícióját kell kiíratni
-
martonx
veterán
válasz
Sk8erPeter #3342 üzenetére
Vagy csak feliratkozol az input onchange eseményére, és utólag nézed meg a fókusz elvesztése után, hogy mit is kaptál a mezőben.
-
Sk8erPeter
nagyúr
Bármilyen programozási nyelvről is van szó, gondold végig először a feladatod algoritmusát. Mit is kell csinálni, hogyan is lehet megoldani a feladatot, akár többféleképpen is, és a többféle megoldás közül érdemes kiválasztani a legrövidebb futási idejűt. Igazából az adott programozási nyelven megfogalmazni az adott feladatot már másodlagos kérdés (egy házat is először megterveznek, és csak utána esnek neki a megvalósításnak).
Az adott beviteli mezőbe begépelt karaktereken végigmész egy for ciklussal (length tulajdonságot felhasználva), és karakterenként megnézed, számról van-e szó. Az egy újabb kérdés, hogy minden egyes szám pozícióját külön-külön fel kell jegyezned (pl. asd1bla2qwe3, ebben a stringben 3 db szám is van), vagy csak a legelső szám pozíciója az érdekes.
-
gyga
senior tag
sziasztok olyan script kellne ami leellenőrzi egy beviteli mező (form )ba beírt adatot és kiírja hogy hányadik karakter numerikus. köszi előre is
-
Sk8erPeter
nagyúr
válasz
#68216320 #3337 üzenetére
"az a megoldás problémás lehet, ha mouseover-re jelenik meg a törlő ikon, mert amúgy a képre kattintással adom vissza a linket az editornak, window bezárással együtt"
Ezt most nem értettem, miért jelent problémát.Hogy érted?
A checkboxos megoldás egyébként teljesen jó.
"Viszont lesz egy olyan feladatom, ahol szükséges lesz a jobb menü az elemek tulajdonságainak lekéréséhez, törléshez, stb."
Háát, igazából ezekre is lehet bőven alternatívát találni, nem biztos, hogy a legjobb felülbírálni a jobbklikkes menüt. Persze ha a felhasználóknak bejövős, meg sikerül igényesen megoldani, akkor talán megbocsátható.
Csak az a gáz, hogy a felhasználók számítanak arra, hogy van egy default viselkedése a böngészőnek, és akkor hoppá, hirtelen egy adott felületen más, ez nem biztos, hogy jó. Ezt csak azért mondom, hogy lehet, hogy lesz olyan felhasználó, aki emiatt anyázni fog."Ott mindenképpen kelleni fog a content menü."
Mármint context menu. -
#68216320
törölt tag
válasz
Sk8erPeter #3336 üzenetére
Teljesen igazad van.
Viszont az a megoldás problémás lehet, ha mouseover-re jelenik meg a törlő ikon, mert amúgy a képre kattintással adom vissza a linket az editornak, window bezárással együtt.
Más galériában én is csináltam ilyesmit, de ott a képre kattintásnak csak amolyan fogd és vidd funkciós szerepe volt.
Inkább az egyenkénti törlés lehet kényelmetlen. Most úgy oldottam meg, hogy csináltam a képek div-jébe checkbox-okat és így többet is ki lehet jelölni egyszerre törlésre.
Viszont lesz egy olyan feladatom, ahol szükséges lesz a jobb menü az elemek tulajdonságainak lekéréséhez, törléshez, stb. Tehát elemenként több lehetőség lesz majd. Ott mindenképpen kelleni fog a content menü.
Amúgy a JQuery tökéletes megoldás, köszönöm.Igazából én tettem fel rossz helyre a kérdést.
-
Sk8erPeter
nagyúr
válasz
#68216320 #3335 üzenetére
Így keress rá:
jQuery context menulegjobb találatok:
http://medialize.github.com/jQuery-contextMenu/demo/dynamic-create.html
http://www.jquery-plugins.hu/plugin/77-jquery-context-menu.htmlhttp://www.jquery4u.com/menus/right-click-context-menu-plugins/
Azt azonban érdemes lenne mérlegelned, hogy biztos jó-e, ha felülbírálod a jobbklikkes menüt, nagyon sok felhasználó nem szereti (igazából én sem nagyon).
A törlőikonra azt is szokták csinálni, hogy ha a kép föléviszed az egeret, akkor a kép sarkában megjelenik egy piros X, amire kattintva visszakérdeznek, hogy biztosan törölni akarod-e. Szóval az egy jó alternatív megoldás lehet.Szerk.: ja, bocs, ez jQuery plugin, amit linkeltem, hirtelen kevertem a jQuery topic-kal... De remélem, nem gond, kész megoldást plain JavaScriptben most hirtelen nem találtam.
-
#68216320
törölt tag
Üdv!
Készítek PHP-ban egy saját image browsert. Viszont a nagyon gyenge javascript tudásom miatt nem tudom megoldani, hogy a képekre történő jobb klikk-re egy saját menü jöjjön elő, egyelőre törlés lehetőségével. Ebben szeretném a segítségeteket kérni. Tehát egy képenként különböző linket tartalmazó helyi menü kellene.
-
CSorBA
őstag
Sziasztok!
Volt itt korábban egy google mapsos minta, info window-al: [link]
Hogy tudom megadni, hogy betöltéskor már eleve legyen nyitva az ablak?
szerk.: Megoldottam, az volt a baj, hogy a setContent-et bent hagytam az eventlisteneren belül
-
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? -
qwertly
addikt
Nem értek a weblaphoz de valamennyire a pc-hez,így ismerősöm aki meg a pc sem ért de szeret írogatni megrajzolni.Van egy bloggja amelyet eddig női ismerőse töltött fel írásaival és rajzaival.Sajnos összevesztek
sokszor van így nő és férfi között így megszakadt ez a lehetőség.Megkért segítsek neki ez nem tűnt olyan bonyolultnak mert csak megtudok formázni és feltölteni szöveget és képet evvel nem is lenne gond de a hölgy becsempészett idegen képeket is bloggba.Amelyet már nem tudok kiszedni pedig ki kellene,a fent említett fórumozó tag mondta meg,hogy JavaScript.Itt a blogg [link] és itt a képek amelyet elkel távolítani:kép
-
qwertly
addikt
Sziasztok!Blogból,hogyan tudok eltávolítani javascripteket mert itt ezt kaptam a Soak tagtól
.
-
ther
aktív tag
Oké, úgy néz ki, hogy 1 pár nap szívás után, mire rávettem magam, hogy felírom ide, akkor rögtön előjön a megoldás:
A filezillában a fájl átvitelt binary-re kell állítani.Sajnos mivel a fáljok feltöltését nem én végeztem így ebbe nem tudtam beleszólni
Bocsi hogy foglaltam a helyet, hátha valakinek segítség lesz a jövőben.
-
Karma
félisten
Sorvégek. Az egyik szerver valószínűleg Linux-alapú, a másik Windows; ugyanis a data.js a rossz esetben úgy néz ki, mintha a lényegi rész ki lenne kommentezve. (Chrome -> pretty print). Alakítsd át egységessé őket, sőt még jobb, ha a kommenteket //-ről /* */-re cseréled.
A context menü letiltásáért meg kőbalta.
-
ther
aktív tag
Sziasztok!
Az egyik számítógépes játékhoz készítettem egy kalkulátort. Feltöltöttem egy ingyenes tárhelyre, ott rendben fut. Egy másik szerveren viszont a JS kód egy része lefut, a másik része nem. Ha a .js fájlokat az ingyenes tárhelyről linkelem be a HTML oldalhoz, akkor itt is rendben fut. Szerintetek miben gyökeredzik a hiba?
-
Penge_4
veterán
válasz
martonx #3317 üzenetére
És ezzel még mit kell csinálnom, mielőtt beillesztem az alert() helyére? A (filename) az most változó, vagy hagyjam úgy, ahogy van és mindent a source src=-hez írjak? Az mp3-as részt meg gondolom szedjem ki és csak az ogg-ot hagyjam, mivel Operában használnám, az meg csak ogg-ot játszik le.
-
martonx
veterán
válasz
Penge_4 #3316 üzenetére
function playSound(filename){
document.getElementById("sound").innerHTML='<audio autoplay="autoplay"><source src="' + filename + '.mp3" type="audio/mpeg" /><source src="' + filename + '.ogg" type="audio/ogg" /><embed hidden="true" autostart="true" loop="false" src="' + filename +'.mp3" /></audio>';
} -
Penge_4
veterán
Azt meg lehet oldani valahogy egyszerűen JavaScripttel (Operás UserJS-hez kéne), hogy hangjelzést adjon mondjuk egy URL-ből behívott OGG (vagy ha külső URL-ről/localhost-ról való .ogg behíváshoz XHR kell, akkor base64 kódolással magában a .js fájlban lévő) hangot lejátszatva a böngészővel?
A legjobb az lenne, ha csak annyit kéne módosítani rajta, hogy az alert(""); sort kicserélem. Tehát amire most csak egy alert ablakot dob, arra lejátszana egy hangjelzést.
-
Jim-Y
veterán
válasz
#68216320 #3313 üzenetére
Ez azt csinálja amit kéne? http://jsfiddle.net/Jim_Y/u29GK/1/
-
#68216320
törölt tag
Sajnos nem erősségem a JS és egy feladatot kellene megoldanom. Ehhez szeretném a segítségeteket kérni.
Van egy FORM jó sok elemmel, AJAX alapon DIV váltásokkal megoldva. Van egy olyan része, ahol 3 csoportban vannak checkbox-ok. Még máshol is vannak a form-ban, de azok most nem játszanak. A feladatom az volna, hogy mindegyik csoporthoz tegyek egy olyan checkbox-ot, amivel az adott csoport összes elemét tudom checked/unchecked állapotba tenni. A csoportok elemeit egy PHP rakja össze, így a számuk változó.
HTML minta így nézne ki:
<form name="myform" method="post">
<fieldset id="box1">
<legend>Test1
<input type="checkbox" onClick="">
</legend>
<input type="checkbox" name="list[]" value="1">Test1<br>
<input type="checkbox" name="list[]" value="2">Test2<br>
<input type="checkbox" name="list[]" value="3">Test3<br>
</fieldset>
<fieldset id="box2">
<legend>Test2
<input type="checkbox" onClick="">
</legend>
<input type="checkbox" name="list[]" value="4">Test4<br>
<input type="checkbox" name="list[]" value="5">Test5<br>
<input type="checkbox" name="list[]" value="6">Test6<br>
</fieldset>
<fieldset id="box3">
<legend>Test3
<input type="checkbox" onClick="">
</legend>
<input type="checkbox" name="list[]" value="7">Test7<br>
<input type="checkbox" name="list[]" value="8">Test8<br>
<input type="checkbox" name="list[]" value="9">Test9<br>
</fieldset>
</form>Próbáltam már írni olyan függvényt ami megcsinálja, de csak Form ID alapján tudom az elemeket megszámolni, a Fieldset ID alapján nem sikerül.
-
Jim-Y
veterán
válasz
Sk8erPeter #3311 üzenetére
Értem, köszi, én sem akartam amúgy okoskodni
Akkor még lehet, hogy nem, de most már
többé-kevésbéértem a prototype hátterét. -
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. -
Jim-Y
veterán
válasz
Sk8erPeter #3309 üzenetére
A jQuery az egy sima javascript object, az fn pedig a prototype-ra egy alias. Ha olyat írsz, hogy jQuery.fn.akarmi, akkor a jQuery objektum prototypusához adsz egy új metódust. Ha a metódusban visszatérsz magával az objektummal, akkor létrehoztad a chainability lehetőségét.
-
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 -
Jim-Y
veterán
válasz
Sk8erPeter #3306 üzenetére
Nem kell értelmet keresni a kérdésben, mert nincs benne, a prototype szemléltetése, és megértése miatt írtam a kódot. Egyébként.. valami ilyesmi volt..
$(document).ready(function(){
var one = jQuery();
jQuery.showText = function(){
jQuery("p").append("some text 1");
};
jQuery.fn.showText2 = function(){
jQuery("p").append("some text 2");
};
try{
//one.showText();
one.showText2();
} catch ( e ){
console.log(e.message);
}
}); -
Karma
félisten
válasz
Sk8erPeter #3304 üzenetére
A jQuery pluginról jut eszembe
-
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. -
Jim-Y
veterán
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ő.
Igen-igen, ezt tudom, pont erre irányult a kérdés, hogy hogy lehetne a második utasítást is lekezelni ugyanabban a try-ban, csak nem tudtam jól megfogalmazni :/
Egyébként köszönöm az ötleteket, pont ilyen válaszra számítottam, ámbár amiket írtál azokat ismertem. 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. Innen jött a kérdés
De akkor mostmár tudom, hogy ahogy írtam úgy semmiképp nem lehet, köszi.
-
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
Üdv. Nekem egy olyan kérdésem lenne, hogy a try blokkban hogy tudok úgy két statementet futtatni, hogy mindkettőt lekezelje a try?
try{
console.log(one.showText());
console.log(one.showText2());
} catch ( e ){
console.log(e.message);
}Itt az első biztos exception-t fog dobni, amit a catch el is kap, és le is kezel, a problémám az, hogy utána a második statementet már nem kezeli le. Tudom, hogy egy nested try..catchel meg lehetne oldani, de az nem túl elegáns szerintem. Szóval, hogy lehet azt elérni, hogy minden statementet lekezeljen a blokk?
Új hozzászólás Aktív témák
Hirdetés
- ÚJ PS5 Slim - FW 8.40 - Lemezolvasó - Lua Loader - Lua játék - Lapse
- új, bontatlan, iPhone 16E gyárilag kártya-független, apple világgaranciával
- Üzletből, garanciával, Macbook Pro Retina 16" 2019, Gray i9 64GB RAM 1TB SSD Radeon Pro 5500M
- Üzletből, garanciával, Macbook Pro Retina 16" 2019, Gray i9 64GB RAM 2TB SSD Radeon Pro 5600M 8GB
- MacBook Pro 14" M1 MAX - 32GB / 1TB (2021) - 1 év garancia
- ÁRGARANCIA! Épített KomPhone Ryzen 7 5800X 32/64GB RAM RX 7800 XT 16GB GAMER PC termékbeszámítással
- 127 - Lenovo Legion Pro 7 (16IRX9H) - Intel Core i9-14900HX, RTX 4080 (ELKELT)
- Új! Targus - USB-C Dual HDMI 4K HUB - 2 HDMI-vel. Saját töltő nélkül 2 monitorral (120Hz)
- Kingmax 1x2GB DDR2 800 RAM eladó
- AKCIÓ! Dell Optiplex 5050 SFF asztali számítógép - i5 7500 8GB DDR4 256GB SSD HD630 Win10
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft
Város: Budapest
Cég: Liszt Ferenc Zeneművészeti Egyetem
Város: Budapest