- Hamarosan megkezdődik a nubia 2,8K-s táblagépének szállítása
- Barátokká váltak az eddig rivális AI-óriások
- ASUS blog: Ideális olcsó utazós gép lett az új Vivobook S14
- Az Aura Displays hordozható monitorhármasa jól felturbózhatja a produktivitást
- Dual Mode-os IPS monitorral adott magáról életjelet a Gigabyte
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Azonnali alaplapos kérdések órája
- Apple asztali gépek
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- AMD Ryzen 9 / 7 / 5 / 3 5***(X) "Zen 3" (AM4)
- HiFi műszaki szemmel - sztereó hangrendszerek
- Házimozi belépő szinten
- Milyen videókártyát?
- Nem indul és mi a baja a gépemnek topik
-
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
-
Jim-Y
veterán
válasz
Hege1234 #3297 üzenetére
De ezen miért vagy meglepve?
A google maps api v3-at is úgy kell használni, hogy regisztrálsz egy privát kulcsot amit egy domainhez használhatsz fel, és ha jól tudom akkor 25000 lapletöltésig. Na most gondolom te két külön oldalhoz használod ugyanazt a privát kulcsot. Megoldás, hogy másik email címmel regelsz egy másik kulcsot. üdv
Itt tudsz igényelni api key-t: [link]
UPDATE: bár lehet rosszul tudtam, az egy domain, egy kulcs dolgot:
By default, a key can be used on any site. We strongly recommend that you restrict the use of your key to domains that you administer, to prevent use on unauthorized sites. You can specify which domains are allowed to use your API key by clicking the Edit allowed referrers... link for your key.Akkor elképzelhető, hogy nincs privát kulcsod és úgy használod az apit?
-
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
-
Jim-Y
veterán
Ilyet próbáltam, de nem működött:
$(".editable").on("click",function(){
out("clicked");
}); -
Sk8erPeter
nagyúr
(#3291) Karma : megelőztél 1 perccel.
-
Jim-Y
veterán
Sziasztok, van egy ilyen sorom a kódomban:
$("#persons_table tbody").append('<tr><td>'+name+'</td><td>'+etr+'</td><td class="editable">'+gyak+'</td></tr>');Gombnyomásra egy új sor adódik egy táblázathoz. Akárhogy próbálom is, nem sikerül az editable classal megjelölt cellához eventet rendelnem:S Valami ötlet?
Azt szeretném, hogy hozzáadás után ha valaki rákattint az editable cellára, akkor valamilyen módon azt szerkeszteni lehessen. üdv
-
nymarti
csendes tag
Sziasztok!
Szeretnék csinálni egy nyomtatás gombot. Ez alapvetően nem lenne nehéz, csak nem az egész oldalt szeretném kinyomtatni majd a gombbal, csak egy részét. Pontosabban egy táblázatot.
Félig-meddig sikerült valamit találnom, ami majdnem jó, csak sajnos a nyomtatáskor portré nézetben van a dolog és nagyon kicsire összenyomja a táblázatot.
Nagyjából így néz ki a dolog most:
<script>
var win=null;
function printIt(printThis)
{
win = window.open();
self.focus();
win.document.open();
win.document.write('<'+'html'+'><'+'head'+'><'+'style'+'>');
win.document.write('body, td { font-family: Verdana; font-size: 10pt;}');
win.document.write('<'+'/'+'style'+'><'+'/'+'head'+'><'+'body'+'>');
win.document.write(printThis);
win.document.write('<'+'/'+'body'+'><'+'/'+'html'+'>');
win.document.close();
win.print();
win.close();
}
</script>
<div id="printme">
<table></table>
</div>
<a href="#" onclick="printIt(document.getElementById('printme').innerHTML); return false">
Print
</a>Előre is nagyon köszi mindent! Bármilyen segítség jól jönne!
-
Soak
veterán
válasz
Sk8erPeter #3286 üzenetére
Persze, nem akarok svácji bicskát csinálni
.
-
Sk8erPeter
nagyúr
De az már külön függvény dolga, ez attól független. Plusz akkor arra is mindenképp figyelj oda, hogy nehogy egy scriptfájlt többször is be akarjon húzni, ezt előtte mindenképp csekkold, hogy nem lett-e már include-olva. Lehet akár csúf globális változóba is tárolni, vagy id-t adni a script tagnek, és annak meglétét ellenőrizni, és egyéb megoldásokon is lehet törni a fejed.
-
Soak
veterán
válasz
Sk8erPeter #3284 üzenetére
Szerk.: amúgy úgy is átalakíthatod, hogy a függvénynek átadod, hogy melyik elemhez szeretnéd appendelni a script taget. Mindenesetre mivel ez is ismétlődő feladat lehet, mindenképp érdemes szerintem függvénybe rakni, és úgy meghívni (beszédesebb is).
Erre gondoltam én is, és akkor már implementálni, hogy figyelje a változást is (.resize) , mert igy ha kis ablakban nyílik meg akkor ha kiteszem full képenyőre már nem fogja behúzni, pedig elférne.
-
Sk8erPeter
nagyúr
Szívesen! A document.head nem minden böngészőben támogatott:
https://developer.mozilla.org/en-US/docs/DOM/document.head
azt hiszem, csak a HTML5 specifikációban rögzítik, hogy ez így valid.
Ha ez a document.head undefined, mert az adott böngészőben nem támogatott, akkor a VAGY-kapcsolatnál lévő értékadás jut érvényre:
document.head = document.getElementsByTagName('head')[0]
így már nem lesz undefined a document.head; a document.getElementsByTagName('head')[0] a legtöbb böngészőben működik, csak valamennyivel lassabb, lásd:
http://jsperf.com/document-head
Persze nem lenne muszáj egyébként ez az értékadás; lehetne úgy is, hogy
var headNode = ( document.head | document.getElementsByTagName('head')[0] );
a hatás elvileg ugyanaz lenne, a headNode a helyes értéket kapná (most nem beszélek arról az esetről, ha valamelyik degenerált kód rosszul bírálta felül a document.head-et), csak utóbbi esetben a document.head-nek nem lenne értékadás, ami egyébként nem is muszáj, nyugodtan kihagyható.
Tehát ha úgy jobban tetszik, az utóbbi értékadást is használhatod.Szerk.: amúgy úgy is átalakíthatod, hogy a függvénynek átadod, hogy melyik elemhez szeretnéd appendelni a script taget. Mindenesetre mivel ez is ismétlődő feladat lehet, mindenképp érdemes szerintem függvénybe rakni, és úgy meghívni (beszédesebb is).
-
Soak
veterán
válasz
Sk8erPeter #3282 üzenetére
Ilyesmire gondoltam köszi, mondjuk nem a head-be akarom rakni, de átalakítom.
Szerk : Az elején mit jelent a VAGY kapcsolat?
document.head || (document.head = document.getElementsByTagName('head')[0]);
-
Sk8erPeter
nagyúr
Most csak arra a részre reagálok, hogy a document.write() ilyesmi feladatokra ritka kivételektől eltekintve (pl. amikor csak meg akarod mutatni, hogy igen, ilyen is van) sztem elég csúnya megoldás alapból.
Akkor már valahogy így, jQuery használata nélkül:
/**
* Inject a JavaScript file into the header
*/
function injectJavaScriptFile( jsFilename, idOfScriptTag ){
// http://jsperf.com/document-head
document.head || (document.head = document.getElementsByTagName('head')[0]);
var
headNode = document.head,
newScriptNode = document.createElement('script');
newScriptNode.type = 'text/javascript';
if(idOfScriptTag){
newScriptNode.id = idOfScriptTag;
}
newScriptNode.src = jsFilename;
headNode.appendChild(newScriptNode);
}aztán így használhatod:
injectJavaScriptFile('myscriptfile.js');
-
Soak
veterán
válasz
martonx #3278 üzenetére
A cél az, hogy a script csak akkor legyen behúzva, ha a rendelkezésre álló képernyő terület a megadott értéken felül van. Van egy fixed div jobb szélen az oldalon, ami pont felemészti az amugy 1000px széles tartalom meletti fehér részt 1280px-nél, viszont 1024px széles képernyőnél már rálóg a tartalomra.
-
martonx
veterán
mondjuk jquery nélkül?
Egyébként javaslom, ne a window szélességét figyeld, hanem a document.body-ét.
És a régebbi IE-knél rémlik, hogy még adocument.body is rosszul számolódott, mert nem vette figyelembe a scrollbar-t.
Pontosan mi a célod? A CSS lekezeli a többféle felbontást, mi az amihez külön javascript is kell? -
Soak
veterán
Sziasztok !
Ezt lehet valahogy jobban ?
var windowWidth = $(window).width();
var scriptUrl = 'http://www.example.com/test.js';
if(windowWidth > 1262){
document.write("<script src=" + scriptUrl + "><\/script>");
} -
Jim-Y
veterán
Estét
Lenne egy kérdésem, van egy probléma, amire szeretnék rájönni, sikerült kitalálni, hogy hogy működjön úgy, ahogy szeretném, és szeretnék magyarázatot kapni arra, hogy miért működik jól
Kód:
function People(){
this.name = "Im a people";
this.info = "People";
}
function Person(name){
this.name = name || this.name;
this.gender = "Male" || "Women";
}
Person.prototype = new People();
var attila = new Person();
for(var props in attila){
console.log(attila[props]);
}Ha a Person-t paraméter nélkül hívom meg, akkor szeretném ha az örökölt nevet (People.name) írná ki, ha paraméterrel hívom meg, akkor Person.name-et írjon ki. A fenti kód ezt csinálja, de a
this.name = name || this.name;
egy kicsit homály még :S Nem lehet ezt valami egyértelműbbel kifejezni?Az eredmény amúgy
--
[00:11:50.709] Im a people
[00:11:50.710] Male
[00:11:50.710] Peoplemegj: nekem az lenne kicsit logikusabb ha
this.name = name || super(name) .. vagy valami hasonlóval lehetne elérni, hogy paraméter nélkül hívva a feljebbvaló adattagját adja vissza. Na mindegy -
Sk8erPeter
nagyúr
válasz
martonx #3273 üzenetére
Ja, ez teljesen jogos szempont. PHP-ben is előszeretettel kihasználják az emberkék - tisztelet a kivételnek -, hogy egy változóba BÁRMILYEN típust betehetnek (ami előtte int típus volt, az később nyugodtan lehet string, majd objektum vagy tömb is, hiszen ki akadályozza meg ebben), gányolhatnak kényükre-kedvükre, és támogatja céljaik elérésében őket a PHP...
Ebből a szempontból tényleg "veszélyes" eszköz. Mondjuk az objektumorientált kódolás és a láthatóság megfelelő kezelése is macerás JavaScriptben (lásd a korábban linkelt cikkeket). Tényleg az a gáz vele, hogy túlságosan szabad kezet ad. Mondjuk szerintem az is gáz, hogy JavaScriptben alapból nem kötelező a pontosvessző megfelelő használata (mert automatikusan kiegészítődik vele a kód).=======================
(#3272) Jim-Y : szívesen.
-
martonx
veterán
válasz
Sk8erPeter #3265 üzenetére
A javascript típustalan, és ugyan a js-t magát a végtelen egyszerűsége miatt szeretem, de a típustalanság engem alapból taszít, és ez - engem ugyan nem - a fejlesztők többségét gányolásra sarkallja.
-
Jim-Y
veterán
válasz
Sk8erPeter #3271 üzenetére
Neked is köszi. Kipróbálom majd mind, és azt használom ami legjobban bejön
-
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: -
Jim-Y
veterán
válasz
fordfairlane #3269 üzenetére
Köszi
-
Jim-Y
veterán
Sziasztok, Chromeban, vagy FF-ban nincs véletlenül valamilyen eszköz arra, hogy direkben a böngészőbe írhassak javascriptet, és az eredményt is lássam rögtön? FF-ban webkonzolban tudok soronként JS parancsokat kiadni, de az így nem az igazi soronként. Magyarán azt szeretném megspórolni, hogy egy html fájlt kelljen létrehoznom csak a js miatt. Ötlet? Firebug tud ilyet?
-
fordfairlane
veterán
A node.js egy kiszolgálóoldali futtatókörnyezet. Ha jól tudom arra a motorra épül, amire a Google Chromeja is, de a kliensoldalhoz nincs köze. Javascript nyelven programozhatsz benne, de attól még a szerver hajtja végre, így a szerveren található erőforrásokat éred el a scriptedből.
-
Soak
veterán
válasz
Sk8erPeter #3265 üzenetére
Kódot direkt nem mutattam, mert igazából adnak két snippetet amit beraksz és kész. Sajnos doksi semmi nincs, elég nagy gyökérség, ezért gondoltam, hogy ha esetleg valaki találkozott már a dologgal akkor elmondthatná hogyan sikerült életre kelteni. Írtam nekik emailt, hogy segítsenek, még nem volt válasz.
-
Sk8erPeter
nagyúr
Mivel semmi kódot nem látunk, így nehéz lesz segíteni. Megnéztem a honlapját, és ott egy 1 perces időtöltés alatt egy normális doksit sem találtam, szóval én nem nagyon tudok miből kiindulni.
===================
(#3261) martonx :
"Mivel aszinkron felépítésű, és a javascript kód gépi kóddá fordulhat, ezért igen hatékony szerver oldalt lehet benne készíteni. Már ha nem lenne a javascript olyan amilyen."
Mármint konkrétan mire gondolsz? -
Soak
veterán
A formatum nyilvan nem mindegy, mert a flash sem eszik meg mindent
A kulonbseg az hogy a node.js-el backendet tudsz programozni .
hogy kliens gépen tudsz szerver oldali műveleteket végrehajtani
Ez a mondat szerintem ertelmetlen. Vagy kliens oldalon hajtasz vegre ( pl sima js) vagy szerveren (mondjuk php vagy node.js)
-
martonx
veterán
Hijnye. Tegyünk tisztába pár dolgot:
"Javascript programozási nyelv, vagy szkript nyelv" - mindkettő igaz, egyszerre mindkettő. A programozási nyelv a nagyobb halmaz, a szkript nyelvek annak egy kisebb részhalmaza.
"A Node.js eddig szimpatikus, én azt láttam rajta, hogy kliens oldalon lehet vele szerver oldali műveleteket végrehajtani" - ez hülyeség. A Node.js-el javascriptben tudsz szerver oldalt programozni. Ennyi.
Mivel aszinkron felépítésű, és a javascript kód gépi kóddá fordulhat, ezért igen hatékony szerver oldalt lehet benne készíteni. Már ha nem lenne a javascript olyan amilyen. -
Soak
veterán
Az nem lehet, hgoy a videó amit leakarsz játszani azt csak az FF támogatja? (Nem vagyok guru, csak erre gonodlok elsőkörben)
Hát tényleg nem vagy guru..
.. Nem a video lejátszással van probléma, hanem az exoclick-es megejelenítéssel. A videót flowplayer játsza le, flashben, szóval cross-browser kompatibilis.
-
Lacces
őstag
Igaz, a framework biztosít, még a .Net és a Java-ban is...
Javascript programozási nyelv, vagy szkript nyelv, az sajnos nem tudom, sokszor megszóltak már mindkét kifejezésért, úgyhogy ezt a vallási kérdést tegyük félreA Node.js eddig szimpatikus, én azt láttam rajta, hogy kliens oldalon lehet vele szerver oldali műveleteket végrehajtani, ami baromira tetszett
. WinJS-t nem ismerem, de gondolom csak win-es.
W3 File/FileReader API tényleg képes lenne könyvtár tartalmat kilistázni? Mert én csak azt láttam, hogy fájlt tud beolvasni és kész... mármint annak tartalmát, de így könyvtár tartalom (könyvtár , fájlok) beolvasása nem.SOAK, Az nem lehet, hgoy a videó amit leakarsz játszani azt csak az FF támogatja? (Nem vagyok guru, csak erre gonodlok elsőkörben)
-
Soak
veterán
Sziasztok !
Van valakinek exoclick in video ad + flowplayer párossal tapasztalata ? Chromeban sehogy sem tudom összehozni, viszont firefoxban tökéletesen megy. Bármi ötlet, hogy a chromenak még mi kéne? A kapott kódot beágyazom a video főlé és kész. FF-ben tökéletes, Chromeban viszont semmi, se IE-ben .
-
Karma
félisten
A JavaScript egy programozási nyelv, így természetesen nyelvi elemként nem tud ilyet, mint ahogy a többi sem
. Mindig a framework biztosít ilyeneket.
Ennek fényében a böngészőben futó JS környezet, a Node.JS és a Windows 8-as WinJS három külön kérdés. Az utóbbi kettőnél vannak alapvető dolgok, a böngészőben meg a W3 File/FileReader API.
-
Lacces
őstag
Ez lehet buta kérdés. De Javascript-tel lehet fájl / könyvtár műveleteket végrehajtani? Ki listázni őket a winyón, stb?
Azért gondoltam erre, mert már nagyon erőltetik Win8-ban is az ez irányú fejlesztéseket + Ubuntuban is lesz támogatás... -
CSorBA
őstag
Van egy adott url, van egy adott oldal.
Facebook comment box.
Ugye mondjuk: data-href="http://domain/cikk" html5 + betöltve az fb js az elején, egy most generált app id-vel.
Mi van, ha domaint váltok, hogy tarthatom meg a hozzászólásokat?
Appnál az "App Domains" és a Website with Facebook Login részben a Site url mező ki van töltve (bár ezt az utóbbit nem értem miért kell).
-
Sk8erPeter
nagyúr
válasz
trisztan94 #3253 üzenetére
Hát például úgy, hogy a window.onload eseménykezelőjén belül.
Itt folyamatosan a $(document).ready() "szemszögéből" közelítetted meg a kérdést, amikor a kettő más.
Tehát vagy a $(document).ready() eseménykezelőjéről, vagy a window.onload eseménykezelőjéről beszélsz, és kész, a kettőt nem kell keverni.
Ha valamit a window.onload eseménykezelőjén belülre raksz, akkor az ott van, ha meg valamit a $(document).ready() eseménykezelőjén belülre raksz, akkor az meg ott van.Szóval érted, nem kell úgy kezelni a $(document).ready()-t, mint valami felsőbbrendű esemény.
-
trisztan94
őstag
válasz
Sk8erPeter #3245 üzenetére
A document ready-n kívülre dolgot úgy értettem, hogy egy sscript fajlon belül van egy document ready és az után jön rögtön az onload. Tehát kb így:
Document ready{
Sok jquery + feltöltő oldali code mirror hívás
}
Window onload {
Megjelenítő oldali Codemirror hívás
}Ezt hogy kell szakszerűen mondani akkor?
-
hmate91
csendes tag
Ismét nem tudok szerkeszteni a hozzászólásomban
Megoldódott, bár nem tudom használni. a gombnak menü Fájl>kilépés -t adtam, de sajnos androidon nem működik. Van valamilyen kód, ami beválhat?
-
hmate91
csendes tag
Na és hogy kérdés is legyen
hogy tudom ezt megoldani?
(előzőt valamiért nem tudtam szerkeszteni) -
hmate91
csendes tag
Üdv!
Az lenne a kérdésem (remélem jó nyomon járok), hogy adobe acrobatal tudok interaktív gombot rakni a pdf dokumentumba és szeretnék ennek olyan funkciót adni, hogy a megnyitott dokumentumot bezárja. -
martonx
veterán
válasz
Sk8erPeter #3247 üzenetére
Bocs, akkor a D nem a DRY-t jelenti
, de ettől még tarthatjuk magunkat hozzá.
Lovagolhatunk azon, hogy mennyi karaktert spórolunk meg, de ettől még bizonyos elvekhez érdemes tartani magunkat, és szerintem már megérte, hogy felhoztam a témát, mert legalább beszélünk róla. Valahogy így csinálnám:
$(document).ready(function(){
// ... sok más jquery
var UploadPageCodeMirror = cdmfromtexta('CodeSnippetBody', 'javascript', false);
window.onload = function() {
var ReadOnlyCodeMirror = cdmfromtexta(''CodeSnippetBodyReadOnly', 'javascript', true);
}
function cdmfromtexta(selector, mode, readonly){
CodeMirror.fromTextArea(document.getElementById(selector), {
mode: mode,
theme: "default",
lineNumbers: true,
readOnly: readonly
});
} -
Sk8erPeter
nagyúr
válasz
martonx #3246 üzenetére
"csak igyekszek a S.O.L.I.D elvekből minimum a Dry-t betartani."
De melyik a Dry a S.O.L.I.D.-ban?http://en.wikipedia.org/wiki/SOLID_(object-oriented_design)
"Single responsibility, Open-closed, Liskov substitution, Interface segregation and Dependency inversion"De Don't Repeat Yourself (DRY) is van:
http://en.wikipedia.org/wiki/Don't_repeat_yourself
Gondolom erre gondoltál.Most ezt lehetne függvénybe rakni, amit Trisztán írt, hogy mondjuk a
{
mode: "javascript",
theme: "default",
lineNumbers: true
}
objektum legyen a default, de ebben az esetben van értelme? Ilyen az API, a readOnly-t még hozzá kell csapni, és két elem miatt írtál egy függvényt, ami aztán a CodeMirror API-t használja fel, és ki tudja, lehet, hogy később mondjuk rájössz, hogy az adott kódrészletnél nem is JavaScript-kiemelést szeretnél használni, hanem mondjuk PHP-set. Igaz, rakhatod a paraméterek passzolgatását függvénybe, de nem érzem, hogy azzal előrébb lennél, csak egy wrappert húznál kb. azonos mennyiségű kód köré, ami meg viszont már tök felesleges kódbázis-növelés. -
martonx
veterán
válasz
Sk8erPeter #3245 üzenetére
Nem is használtam a gányolás szót, csak igyekszek a S.O.L.I.D elvekből minimum a Dry-t betartani.
-
Sk8erPeter
nagyúr
válasz
trisztan94 #3242 üzenetére
"Mint a videóban is látszik,ha document ready-be vannak berakva, akkor a feltöltő oldalon megy, ha azon kívülre, window onload-ba, akkor meg a megjelítő oldalon."
Ezt még mindig nem értem, valami fogalmi zavarokat érzek nálad. Mi az, hogy $(document).ready()-n KÍVÜLRE, window.onloadba? Ez így értelmetlen. A .ready egy jQuery által definiált esemény, az .onload pedig megint egy másik esemény, van eltérés is a kettő között, amire a magyarázatot is gyorsan megtalálhatod:http://stackoverflow.com/questions/3698200/window-onload-vs-document-ready/3698214#3698214
"The ready event occurs after the HTML document has been loaded, while the onload event occurs later, when all content (e.g. images) also has been loaded.The onload event is a standard event in the DOM, while the ready event is specific to jQuery. The purpose of the ready event is that it should occur as early as possible after the document has loaded, so that code that adds funcionality to the elements in the page doesn't have to wait for all content to load."
Szóval nem tudom, honnan jött nálad ez a "document ready-n kívülre, window onload-ba", de ez helytelen, értelmetlen, két különböző eseményről beszélünk, vagy egyikre, vagy másikra feliratkozhatsz egy event handlerrel (mindkettőre is feliratkozhatsz, csak értelmetlen).
Érdekes egyébként, amit írsz, hogy a .ready-vel az egyik esetben nem megy, csak onload-dal.
Egyébként nincs abban semmi gányolás, amit csináltál.
Egyszerűen annyiról van szó, hogy más esemény bekövetkezésére iratkoztál fel egy adott eseménykezelővel.================
(#3243) trisztan94 :
örülök, ha tisztázott egy-két részletet.
Amúgy viszont szerintem ha valaki érteni akarja, mit csinál jQuery-ben, akkor annak értenie kell először az alapokat, szóval sztem sima JavaScripttel érdemes indítani.================
(#3244) martonx :
rakhatta volna mondjuk egy initCodeMirror() nevű csodafüggvénybe, vagy hasonlóba a kódját, de szerintem ettől még nem gányolás, amit csinált.
-
martonx
veterán
válasz
trisztan94 #3242 üzenetére
Szia!
Azért ezt illett volna egy külön függvénybe kiemelni, pláne ha még be is teszed ide a kódodat
Nem vagyok éppen egy refaktorálás megszállott, de ez a kód még így is nagyon csípi a szemem. -
trisztan94
őstag
válasz
Sk8erPeter #3240 üzenetére
Köszi a megosztást, tényleg nagyon jó írás. Én nagyon keveset sz*rakodtam a javascript-tel, gyorsan rátértem a jQuery-re és örültem, hogy nem kell vele bajlódni. Azóta persze többször is előjött, hogy kellett volna vele többet foglalkozni, például a setInterval-nál, fogalmam sem volt, hogy hogy kell használni. Azóta persze kicsit átnéztem, de még mindig nem az igazi. Sokat segített ez a cikk!
-
trisztan94
őstag
válasz
Sk8erPeter #3239 üzenetére
No, leellenőriztem mindent:
Minden be van töltve, nem ütközik semmilyen más kóddal, próbáltam külön fájlba csak a jQuery nélküli codemirror scripteket berakni, úgy is ezt produkálja. Mint a videóban is látszik,ha document ready-be vannak berakva, akkor a feltöltő oldalon megy, ha azon kívülre, window onload-ba, akkor meg a megjelítő oldalon.Így oldottam meg, bár eléggé gányolós megoldás, működik, jelenleg ennyi nekem elég:
$(document).ready(function(){
// ... sok más jquery
var UploadPageCodeMirror = CodeMirror.fromTextArea(document.getElementById('CodeSnippetBody'), {
mode: "javascript",
theme: "default",
lineNumbers: true
});
});
window.onload = function() {
var ReadOnlyCodeMirror = CodeMirror.fromTextArea(document.getElementById('CodeSnippetBodyReadOnly'), {
mode: "javascript",
theme: "default",
lineNumbers: true,
readOnly: true
});
}Tehát a feltöltő oldalon lévő codemirrort document ready-be raktam, a megjelenítő oldalon lévőt, a document ready-n kívülre, window onload-ba.
Lehet megnézem az ACE editort
-
Sk8erPeter
nagyúr
válasz
Sk8erPeter #3240 üzenetére
harmadik rész, további kételyek vagy félreértések eloszlatására (biztos haladók is találnak benne olyan részeket, amik tisztáznak pár nem triviális dolgot, lásd pl. Variable Hoisting):
-
Sk8erPeter
nagyúr
Egy nagyon jó összefoglaló miértekről és hogyanokról, namespace-ekről, objektumokról, tömbökről, scope-okról, adatrejtésről és hasonlókról (nekem modder linkelte):
Kevés igazán átfogó cikket látni, ami egy helyre gyűjti a különböző konvenciók értelmes magyarázatát, ez szerintem pont olyan, érdemes egyszer elolvasni.
Folytatása:
-
Sk8erPeter
nagyúr
válasz
trisztan94 #3237 üzenetére
A videód eléggé kapkodós volt, igazából nem tudom, hova rohantál, de lehet, hogy többet ért volna egy kicsit tökölősebb videó.
Az a baj, hogy a kódod többi részében nem vágjuk, mi történik, mi kúrhatja el a megjelenítést, még ennyi infó is kevés ehhez. Azt meg nem értettem, amit egy másik hsz.-ben írtál, hogy a $(document).ready()-n KÍVÜLRE raktad azt, amit írtam... heh?Most ide felraktam még egy példát, elölről kezdve, hátha valami para ennél is előjön, de nem volt semmi gond:
http://jsfiddle.net/Sk8erPeter/TcqAf/
Nálad lehet, hogy valami szükséges fájl nincs betöltve.
===============
(#3238) Dave-11 :
szívesen! -
Dave-11
tag
válasz
Sk8erPeter #3231 üzenetére
Na ma megcsináltam a dolgot, és szuperül működik, pont ahogy elképzeltem, köszönöm a segítséget
-
trisztan94
őstag
válasz
trisztan94 #3236 üzenetére
http://screencast.com/t/3lIh3uIDFT3
Itt az említett videó.
Tényleg nagyon nagyon sajnálom a tripla hsz-t, nem fordul elő többet!
-
trisztan94
őstag
válasz
trisztan94 #3235 üzenetére
No, megjavult az előző bejegyzésben történt update probléma,minden böngészőben megjelenik a feltöltő oldalon a CodeMirror, nem tudom miért csinálta, ctr-f5-tel újra bejött. Még mindig rossz a megjelítő oldalon though.
Bocsi a felesleges hsz-ért!
Update 2: (
)
Nos, beraktam a document ready-n kívülre amit írtál Sk8terPeter, így most MŰKÖDIK a megjelenítő oldalon!DE
Most meg a feltöltő oldalon nem jelenik meg....
Mindjárt csinálok egy bemutató videót, hogy lássátok. -
trisztan94
őstag
válasz
Sk8erPeter #3234 üzenetére
$(document).ready-be van rakva az egész script fájl. Ide rakom a jQuery kódokat is. Próbáltam onLoad-dal, úgy egyik oldalon sem jelenik meg a bővítmény
Update:
Nos, most teljesen meghalt a dolog.. átírtam ugye onLoad-ra, láttam, hogy nem jó, vissza Undo-ztam az eredetire és sehol sem jelenik meg. Mi a f*sz?? (már bocsánat, nagyon felhúzott)Az is gáz volt, hogy eddig ami megjelent, az is csak chrome-ban jelent meg, opera, firefox, ie-ben nem.
Most vagy én csinálok valamit nagyon szarul vagy nem tudom. Így vannak include-olva a layout fájlban:
<link href="~/Content/themes/base/jquery.ui.all.css" rel="stylesheet" type="text/css" />
<link href="~/Content/Site.css" rel="stylesheet" type="text/css" />
<link href="~/Content/codemirror.css" rel="stylesheet" type="text/css" />
<link href="~/favicon.ico" rel="shortcut icon" type="image/x-icon" />
<script src="~/Scripts/jquery-1.7.1.min.js"></script>
<script src="~/Scripts/doesExist.js"></script>
<script src="~/Scripts/jquery-ui-1.8.20.js"></script>
<script src="~/Scripts/modernizr-2.5.3.js"></script>
<script src="~/Scripts/Codemirror/codemirror.js"></script>
<script src="~/Scripts/Codemirror/mode/javascript/javascript.js"></script>
<script src="~/Scripts/Script.js"></script>Jó sorrendben raktam be őket, nein?
-
Sk8erPeter
nagyúr
válasz
trisztan94 #3233 üzenetére
"Lehet, hogy az a baja, hogy külön fájlba van?"
Az biztos, hogy nem, ha megfelelően, sorrendben include-olva van.
Az viszont nagyon nem mindegy, hogy pl. vajon onloadra van-e kötve.
Így:
http://jsbin.com/esomel/1/editSzóval így próbáltad? Még egy kis infó kéne, hogy rájöjjünk, mi lehet a para.
======================
(#3232) Dave-11 :
"Arra a változós módszerre én is gondoltam, csak először kicsit megijedtem tőle"
Ne félj, nem vagy egyedül, itt vagyunk veled. -
trisztan94
őstag
válasz
Sk8erPeter #3226 üzenetére
Érdekes módon itt működik [link], pedig ugyan azt a kódod raktam bele. Lehet, hogy az a baja, hogy külön fájlba van? ASP.net Razorba van az oldal, van egy layout fájl, abba vannak berakva src-be a fájljai, a felöltő oldal is egy content fájl ill. a megjelenítő oldal is.
De akkor miért működik csak a feltöltő oldalon?
Próbáltam inline beírni a megjelenítő oldalon, de úgy sem jó. Layout fájlba is próbáltam inline, úgy sem, de mindenképp szeretném az összes JS-et külön fájlban tárolni az olvashatóság miatt.Mitől lehet ez?
-
Dave-11
tag
válasz
Sk8erPeter #3231 üzenetére
Arra a változós módszerre én is gondoltam, csak először kicsit megijedtem tőle, hogy túl bonyolult lenne megoldani, de látom hogy annyira nem is
A jó tanácsokat pedig kösz, majd átnézem és megpróbálom kicsit hozzászokatni magamat -
Sk8erPeter
nagyúr
válasz
Dave-11 #3230 üzenetére
"PHP-val egy adatbázisból íratom ki a bejegyzéseket, egy while ciklussal, és akkor hogy állítsak különböző id-t"
Te magad írtad le a kulcsszót... ciklus... pl. létezik olyan, hogy ciklusváltozó, aminek az értékét minden lépésnél növeled eggyel.Például:
$i = 1; // most direkt egyről indítom
while($cikk=mysql_fetch_assoc($adat)){
// ....
echo '<input type="text" class="hozzaszolas" id="hozzaszolas_' . $i . '" />';
// ....
$i++; //növeled
}nem egy nagy misztikum, így olyan id-jeid lesznek, hogy hozzaszolas_1, hozzaszolas_2, stb...
de én a helyedben inkább a cikknek az id-jával helyettesíteném, például így:echo '<input type="text" class="hozzaszolas" id="hozzaszolas_' . $cikk['id'] . '" />';
(persze csak ha id kulcs létezik)
hogy OFF-oljak is egy sort, ha már PHP-kód:
az elavult és szar mysql_query-s bohóckodásról még most szokj le, és szokjál rá a PDO-ra (Tele von Zsinór kolléga gyors áttekintő cikke: http://maerlyn.eu/2011/12/03/pdo.html). Objektumorientált adatbázis-wrapper, prepared statementekkel.
Ha ennél meggyőzőbb érv kell:
http://prohardver.hu/tema/php_kerdesek_2/hsz_10152-10152.htmlmásik:
echo "<input type='text' id='hozzaszolas' />";
ezt szintén felejtsd el. A macskakörmöt hagyd meg HTML-kódnak, a PHP-kódban pedig használj sima aposztrófot:
echo '<input type="text" id="hozzaszolas" />';
Gyorsabb is (nem kell változó-behelyettesítéssel foglalkozni aposztróf esetén). -
Dave-11
tag
válasz
Sk8erPeter #3227 üzenetére
Rendben, csak az lenne a gond, hogy ezt még csak így én gépeltem fel magamnak próba kedvéért, de majd úgy fog működni, hogy PHP-val egy adatbázisból íratom ki a bejegyzéseket, egy while ciklussal, és akkor hogy állítsak különböző id-t, nincs olyan megoldás, ami működik azonos id-jűekre?
Erre gondoltam:
<?php
$query = "SELECT cim, tartalom FROM bejegyzesek";
$adat = myqsl_query($query);
while($cikk=mysql_fetch_assoc($adat)){
echo "<div id='cikk'>";
echo "<h1>" . $cikk["cim"] . "</h1>";
echo $cikk["tartalom"];
echo "<input type='text' id='hozzaszolas' />";
echo "<button id='gomb'>Küldés!</button>";
}
?>
Ezt most csak gyorsban írtam le, de ilyesmire gondoltam. Szóval, ötlet? -
Sk8erPeter
nagyúr
Na most hirtelen nekem nem esik le valami, úgyhogy én kérnék szépen iránymutatást.
Ide felraktam valakinek egy példát a jQuery Countdown pluginról:
http://jsbin.com/icisuy/2/edit
A lényege, hogy számoljon vissza 2013. dec. 31., 23:59:59-ig.
Ezért így inicializáltam a dátumot:var myDate = new Date(2013, 12, 31, 23, 59, 59);
ez alapján elvileg jónak kéne lennie:
https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Datenew Date(year, month, day [, hour, minute, second, millisecond]);
ennek ellenére a toString alapján ez jön ki:
Fri Jan 31 2014 23:59:59 GMT+0100 (Central Europe Standard Time)
most itt az időzónabeli különbséggel nem tudtam magyarázni, mivel ez konkrétan egy hónapnyi eltérés pluszban.
Miért?============
Szerk.: jól van, leesett, benéztem.
month
Integer value representing the month, beginning with 0 for January to 11 for December.Tehát így lesz jó:
var myDate = new Date(2013, 11, 31, 23, 59, 59);
-
Sk8erPeter
nagyúr
válasz
trisztan94 #3223 üzenetére
De, jsFiddle-re is fel tudod így rakni, úgy, hogy az "Add resources" résznél bepakolod a fájl elérési útját, innen:
https://github.com/marijnh/CodeMirror/tree/master/lib
konkrétan ezt:
https://raw.github.com/marijnh/CodeMirror/master/lib/codemirror.js
és ezt:
https://raw.github.com/marijnh/CodeMirror/master/lib/codemirror.cssMondjuk mostanában nem tudom, mi van a jsFiddle-lel, elég sokat b@szakodik, de használhatod a jsbint is, meg a tinkerbint is, annyi a különbség, hogy ezeknél <script> tagben adod meg, az src attribútum használatával.
Amíg nem mutatsz konkrét kódot, sajnos nem tudjuk megoldani a hibádat. -
Dave-11
tag
Lenne egy kis gondom. Van egy oldal, ezen belül 3 bejegyzés. Egy toggle eseményre előjön alattuk egy szöveg mező és mellette egy gomb. Ha a gombot lenyomjuk, akkor a bejegyzés szövege megváltozik a beviteli mezőben megadottra. Ez eddig jó is lenne, csak az a baj, hogy csak az első gombbal működik, a többi valamiért nem reagál. Vetnétek rá egy kukkantást?
http://jsbin.com/uhofeh/1/edit -
trisztan94
őstag
válasz
Sk8erPeter #3221 üzenetére
Se firebug, se semmi nem ír hibát. Jsfiddle-re sajnos nem tudom felrakni, mert kellenek a fájljai
Fogalmam sincs mitől lehet ez. Az összes böngésző alatt ezt csinálja.
-
Sk8erPeter
nagyúr
válasz
trisztan94 #3215 üzenetére
Ha mondjuk megnyitnád a konzolt (F12 vagy Ctrl+Shift+I, Console fül), és azt is elmondanád, ott látsz-e hibát, sőt, esetleg még jsfiddle-re vagy jsbinre vagy tinkerbinre felraknád a kódot, hogy kész változatot lássunk, akkor biztos előrébb lennénk.
-
nobela
senior tag
Probléma megoldva!
Köszönöm a segítséget, elsőre úgy tűnt, hogy on topic problémával állunk szemben, és valami nem stimmel az IE9 GA javascript futtatásával (a Google adott is jópár ilyen jellegű találatot...).
Kiderült, hogy szó sincs róla, egyszerűen valamilyen grafikus program szétcseszte a PNG hozzárendeléseket, és az IE ezért semmilyen PNG-t nem jelenített meg - furcsa módon Chrome alatt nem volt ilyen gond.
Találtam egy RegFixet, lefuttattam, és minden oké.
Bocs, hogy off topic problémával zavartam, és még egyszer köszi a segítségeket!
-
nobela
senior tag
válasz
trisztan94 #3217 üzenetére
Köszi, csekkolom!
Szerk: hehe, Safari/OSX alatt bizony darabjaira esik...
A többi viszont úgy tűnik jó. Nagyon hasznos oldal!
-
nobela
senior tag
válasz
martonx #3216 üzenetére
Core2Duo@3200Mhz 4G RAM Gtx560.
Nem mondanám éppen őskövület gépnek.
XP folyamatosan frissítve, minden driver és szoftver a legfrisseb verzióban.
És mint mondtam, napi több száz weblap megtekintése közben egyetlen hibás oldal sincs.Ettől persze nyilván lehet, hogy a hiba itt van valahol, de azért nem kellene egy kézlegyintéssel elintézni a dolgot. És nyilván nem nyugtat meg a tudat, ha valami nem működik, és nem tudom az okát. Így ugyanis elég nehéz megjavítani.
-
-
trisztan94
őstag
Sziasztok!
A CodeMirror bővítményről szeretnék kérdezni.
Két külön lapra szeretném beágyazni.
Az első egy kódrészlet feltöltő oldal, mely rendesen működik is, így néz ki most jelenleg. Mint látható tökéletesen megjelenik, nincs vele probléma.Itt a JS kódja (külső script fájl)
var UploadPageCodeMirror = CodeMirror.fromTextArea(document.getElementById('CodeSnippetBody'), {
mode: "javascript",
theme: "default",
lineNumbers: true
});Itt pedig a HTML kódja
<textarea rows="15" cols="70" name="CodeSnippetBody" id="CodeSnippetBody" @Validation.For("CodeSnippetBody")></textarea>
A második oldal egy kódrészlet megjelnítő lap lenne, melyen ugyanúgy CodeMirrorba jelenik meg, de ReadOnly attribútumot igazra állítva csak megjelenítés célt szolgálna. Nos, az valamiért nem akar működni, pedig másol+beillesztéssel csináltam meg még egyszer a kódod. A furcsa benne az, hogy ha ennek a textarea-nak az ID-jét átállítom arra ami a feltöltő oldalon volt (tehát CodeSnippetBody-ra), akkor megjelenik, de ha saját id-t adok neki nem.
Így néz ki a JS kódja (ugyan az a külső js fájl):
var ReadOnlyCodeMirror = CodeMirror.fromTextArea(document.getElementById('CodeSnippetBodyReadOnly'), {
mode: "javascript",
theme: "default",
lineNumbers: true
});Így pedig a HTML:
<textarea id="CodeSnippetBodyReadOnly">@code["CodeSnippetBody"]</textarea>
Így jelenik meg, tehát hibásan
Ha átállítom erre a HTML-jét, akkor viszont megjelenik, de akkor ugye nem tudom ezt külön testreszabni, hogy ReadOnly módba legyen.
<textarea id="CodeSnippetBody">@code["CodeSnippetBody"]</textarea>
Ekkor így jelenik meg.
Mi lehet ezzel a probléma, mit csinálok rosszul?
Köszönöm előre is
T
-
Jim-Y
veterán
Bordó téglalap tipp:
ide állíts be egy default hátteret szerintem:#templatemo_site_title_bar_wrapper {
width: 100%;
height: 240px;
margin: 0 auto;
background: url(images/templatemo_header_bg_wrapper.jpg) no-repeat top center;
}ja nem... megvan...
ezt szinezd át tiszta feketére, vagy legalábbis vedd ki belőle a bordót:
[link] -
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!
-
martonx
veterán
Tegyük fel, hogy IE9 alatt nem megy rendesen a GA.js (bár ez önmagában is hihetetlen szerintem, illetve ki is próbáltam, és nem áll le, rendben lefut)
Mégis mi történik ekkor? A GA.js után következő javascript, hangsúlyozom csak a javascript kódok futása megáll. Kizárólag ennyi.
Tehát amit mondasz, és tegyük fel, hogy IE9 alatt tényleg nem megy, akkor is csak féligazság.
Persze a további js-ek leállása egy SPA esetében nagy gond lehet, a te oldalad esetében, ahol ez az egyszál js fut, lényegtelen. Maximum torzítani fog a valósághoz képest a GA mérés. -
martonx
veterán
Mondjuk nekem sincs fent külön IE9, IE10-el emuláltam IE6-ig.
IE6-ban már valóban szétcsúszik a layout, IE7 és afölött jó.
Az xp-s gépednél valami más gebasz lehet.
Pláne, hogy amiket hiányolsz azoknak az elemeknek éppen semmi közük nincs az oldalon lévő egy szál google analytics javascriptjének lefutásához. -
-
martonx
veterán
Új hozzászólás Aktív témák
Hirdetés
- Asztali PC , i7 9700K , RX 5700 XT , 32GB DDR4 , 500GB NVME , 1TB HDD
- Dell Inspiron 5406 2-in-1i5-1135G7 16GB DDR4 3200 512GB NVME 14" FHD Érintőkijelző W11Pro
- Eladó MacBook Pro 14" M1 Pro (2021) 16/512 99% akku Makulátlan állapotban!
- Újszeru GIGABYTE G5 - 15.6" FullHD 144Hz - i7-13620H - 48GB - 1TB - RTX 4050 - Win11 - 1,5 év gari
- Eladó garanciás,új állapotu projektorom kihasználatlanság miatt!
- Samsung Galaxy S23 Ultra 256GB, Kártyafüggetlen, 1 Év Garanciával
- iKing.Hu - Motorola Edge 50 Ultra - Nordic Wood - Használt, karcmentes
- ÁRCSÖKKENTÉS Lenovo ThinkPad P51s, P52s, T570, T580 eredeti Lenovo, belső akkumulátor eladó
- LG 40WP95XP-W - 40" NANO IPS - 5120x2160 5K - 72Hz 5ms - TB 4.0 - HDR - AMD FreeSync
- BESZÁMÍTÁS! Asus B350 R5 1600 16GB DDR4 512GB SSD GTX 1050Ti 4GB Cooler Master CM 690 III TT 500W
Állásajánlatok
Cég: PC Trade Systems Kft.
Város: Szeged
Cég: CAMERA-PRO Hungary Kft
Város: Budapest