ugrás a tartalomhoz

Aposztróf javascript array-ban hogyan?

YourSoft · 2012. Már. 12. (H), 22.42
Van egy virtuális billentyűzetem, amely aktuális értékeit javascript tömbben adnám meg valahogy így:
c=[['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','\''],['a','á','b','c','d','e','é','f','g','h','i','í','j','k','l','l','y','m','n','o','ó','ö','ő','p','q','r','s','t','u','ú','ü','ű','v','w','x','y','z']][h.d.selectedIndex];
Ez szépen működik is. Kivéve IE alatt.
Ott az aposztróf ('\'') miatt panaszkodik, hogy nem lezárt karakterkonstans. Ha azt kiveszem a kódból, akkor nincs baj.
Amikor egy ilyen virtuális billentyűre rányom a felhasználó, akkor a karakter értéke beíródik egy kereső mezőbe. Így a karakternek jó lenne, ha megmaradhatna a: '

Tud valaki rá megoldást?
 
1

Hol?

Poetro · 2012. Már. 12. (H), 23.04
A fenti kód milyen fájlban szerepel? JavaScript fájlban, vagy HTML-ben? Ha HTML-ben, akkor esetleg jobb lenne mondjuk helyette a Unicode kódját (\u0027) írni, vagy ' helyett "-t használni a string jelölésére. Azt természetesen már meg se merem kérdezni, miért csak ezek a karakterek szerepelnek a virtuális billentyűzeten.
2

d

YourSoft · 2012. Már. 12. (H), 23.37
Köszönöm a választ. :-)

A fenti kód a http://dictzone.com/angol-magyar-szotar/ oldalon szerepel. HTML-be ágyazott javascriptben. ;-)

Már próbáltam a \u0027-et és azt is, hogy "-t használok a string jelölésére. Sajnos mindkét estben ugyanúgy fekszik meg az IE8 (és gondolom előző verziók). :-(
3

Valahol máshol lesz a

Poetro · 2012. Már. 13. (K), 00.22
Valahol máshol lesz a hiba.
Csináltam egy egyszerű kis HTML dokumentumot:
<!DOCTYPE html>
<html>
<head>
    <title>Page Title</title>
    <meta charset="utf-8">
</head>
<body>
<script type="text/javascript">
var selectedIndex = 0;
var c=[['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','\''],['a','á','b','c','d','e','é','f','g','h','i','í','j','k','l','l','y','m','n','o','ó','ö','ő','p','q','r','s','t','u','ú','ü','ű','v','w','x','y','z']][selectedIndex];
document.write(c);
</script>
</body>
</html>
És tökéletesen jól működik minden IE változatban, még 6-osban is. Valahol máshol lesz a hiba, nem itt.
4

ok

YourSoft · 2012. Már. 13. (K), 08.40
Lehet, hogy mással függ össze a hiba, de most, hogy csak az aposztrófot levettem az oldalról, nem jelez hibát. Amíg nem találom meg mi okozza. Addig így megy tovább.
5

Működik?

Poetro · 2012. Már. 13. (K), 12.05
De a fenti kód működik neked? Mert az a te kódodnak egy enyhén módosított változata. Ha az működik, akkor nálad valahol máshol lesz a probléma.
6

Ajajaj...

T.G · 2012. Már. 14. (Sze), 08.36
A kódban van néhány elem, ami iskolapéldája annak, hogy így nem szabad.

A probléma az, hogy a kapott karakterből újabb HTML kódot csinálsz, a karaktert ismét idézőjelek közé teszed, a z-nél: <a onclick="k('z');return false" href="#">z</a>, a '-nél meg: <a onclick="k(''');return false" href="#">'</a> Ha itt \"-et használnál, akkor megoldódna ez a probléma.

Mindenképpen ajánlanám, hogy ismerkedj meg JQuery-vel, sokat segítene a kódon, ha azzal készült volna el!
7

Hoppá

YourSoft · 2012. Már. 14. (Sze), 10.43
Köszi, valóban itt lesz a gond. JQuery-t azért nem használtam, mert úgy láttam jelentősen megnövelné a js kód nagyságát. A mostani js kód <4K. A JQuery egymagában tömörítve is jóval nagyobb ennél.

A gyorsabb oldalletöltés miatt a ~4K-s kódot simán be tudtam rakni a html forrásba. Amíg ez a kód kint volt külön js fájlban, az oldal érezhetően lassabban töltődött be. Arra gondoltam, hogy, ha plusz még 2 js fájlt kellene betöltenem, akkor még jobban érezhető lenne a lassulás.
Még egyszer átgondolom a JQueryt. Esetleg, ha tudtok mondani valami megoldást a fenti lassú betöltésre, az sokat lendítene a dolgon. :-)
8

A feladatot jQuery nélkül is

Hidvégi Gábor · 2012. Már. 14. (Sze), 11.39
A feladatot jQuery nélkül is meg lehet oldani normál DOM függvények segítségével vagy a megfelelő karakterláncok escape-elésével.

A modern böngészőkben van betöltésiidő-elemző, érdemes megnézni, mi jön le lassan, jól vannak-e beállítva a http fejlécek (lehet-e gyorstárazni a fájlokat).
9

Igen

YourSoft · 2012. Már. 14. (Sze), 16.06
Köszönöm. Igazad van JQuery nélkül is megoldható a feladat.
A JQuery-vel viszont egy csomó minden egyszerűbb.

Úgy emlékszem inkább az lökött sokat az oldal gyorsaságán, hogy beinkludáltam a js-t a html kódba. Ugyan nem láttam lényeges különbséget a betöltési időkben a firebug és társaiban, viszont érezhető volt a különbség magán a weblapon.
10

Köszönet

YourSoft · 2012. Már. 14. (Sze), 18.49
Köszönöm mindenki segítségét.
Az átalakított kód holnapra élesedik.