-
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
-
emitter
őstag
-
emitter
őstag
én nem vagyok a html-szerkesztők híve, abból nehezen lehet tényleg html-szakértővé válni
a kódhoz kell érteni, úgy bármit meg tudsz csinálni
php nagyon hasonlít pl a C-re, én utóbbit tanultam fél évig, így nagyon könnyű átállni
szinte csak a szintaktikát kell megtanulni, begyakorolni... már ami kevés eltérés van
mod: ja, a php sokmindent egyszerűsítve ad a kezedbe, pl C-hez képest, így a rendszeresen előforduló problémákra kész megoldást ad álatalában, nagyban megkönnytve a dolgodat
(pl. tömbrendezés, spec. ciklusok, megmég egy rakás cucc, csak én még eddig keveset fedeztem fel )
[Szerkesztve] -
emitter
őstag
és miért akarnál php-val játékot készíteni két külön területről beszélünk... a php webre született, delphi meg
egyébként egyszerűbb kis játékokat (amiknek nincs grafikai igényük), bármilyen nyelven meg lehet írni szerintem
mod: pl. amit C-ben írtam konzolos aknakeresőt sztem simán át tudnám írni php-ra (nomeg kellene hozzá egy kis html is, de az már részletkérdés)
naja, fasternek igaza van, a továbbiakban szorítkozzunk a javascriptre
[Szerkesztve] -
emitter
őstag
javascripttel hogyan tudok php-függvényt meghívni?
van egy ilyenem:
<a href='#' onClick='torol($uDir,$fajl)'>fájl törlése</a>
ez persze nem működik. hogyan írjam át, hogy onclick-re meghívódjon egy php-függvény
vagy az is jó nekem, ha mondtok egy js-függvényt, ami fájlt töröl most nincs kedvem még a js-referenciát is feltúrni ezügyben, elég nekem most a php-t tanulni
előre is köszi!
ui: minden egy php-fájlon belül van, mindent ott intéznék el -
emitter
őstag
sziasztok!
guglin is keresgélek még, de egyelőre nem találok olyan js menüt (vagy inkább nevezzük csak sima link-listának, nem kell többszintűség), ami átlátszó (ez nem annyira fontos, de azért igencsak jól jön), egérrel lehet odébbhúzni, és toggle-képes, azaz fel lehet gördíteni, majd vissza
ha bárki tud linket adni, nagyon megköszönném, sajna nem értek js-hez, magam nem tudnám megírni
köszi!!!
mégegy kérdés: js-sel lehet cookiekat kezelni? -
emitter
őstag
válasz matekmatika #538 üzenetére
thx, közben találtam már drag&drop menüt, átlátszó menüt, cookie-kezelésről példákat, szóval már ''csak'' egyesítenem kell ezeket
-
emitter
őstag
na újra itt!
kérdésem:
van egy ilyenem: window._content.document.write();
ezzel kiírok az akt. oldalra egy stringet. de újratöltéssel. namost nekem olyan megoldás kéne, ami nem tölti újra az oldalt, hanem az aktuális után fűzi ezt a sztringet...
ha nem érthető, egy menüt szeretnék egy nyitva levő oldalra illeszteni, annak megváltozatása nélkül (nem az enyém a lap, ezért nem tudom egyszerűbben megoldani )
nagyon zavaros volt? -
emitter
őstag
after debugging:
ha elsőnek iratok ki ezzel:
window.content.document.write(''content1'');
akkor egy üres oldalra írja h ''content1''
ha ezután mégegyszer mondom neki, hogy
window.content.document.write(''content1'');
akkor már nem nyit üres oldalt, hanem hozzáfűzi az első szöveghez ez miért? első esetben miért nem működik ez -
emitter
őstag
hogyan tudok hosszú, html-lel és js-sel tűzdelt kódot egy JS-sztringbe rakni?
ezt kéne:
szoveg=''<div id=xdiv style='position:absolute; border:solid 1px blue; width:200px; height:100px; background:white'>
<div style='background:blue; text-align:center; color:white'>fejlec</div>
tartalom
</div>
<script>
xdiv.onmousedown = function(e){
[...]
</script>''
de ez nem megy, mert ez innentől kikerül a dupla-aposztrófok hatásköréből...
<div style='background:blue;...
JS-syntax-highlight-tal néztem
mod: így néz ki a szerkesztőben: [link]
[Szerkesztve] -
emitter
őstag
nem segít
kétféleképpen próbáltam:
minden egységet, ahol ő megszakítja a hatókört, lezárok, és '+' operátorral összefűzöm a részsztringeket.. ez elég gusztustalan és főleg átláthatatlan lesz a kód..
másik, szintúgy favágómegoldás, hogy kiszedek minden entert, tabot, így egy sztringnek veszi a kiemelés szerint
ezeken kívűl vkinek ötlete? -
emitter
őstag
nem jó.. ugyanaz a hiba áll fenn, mint amit meg akarunk oldani vele:
amikor átadom a stripHTML() fv-nek a nagy sztringet, éppúgy rosszul értelmezi az aposztrófok hatáskörét, és csak kiírja html-szövegként a lapra ()
így csinálom vhogy:
var szoveg = stripHTML(''
<div id=xdiv style='position:absolute; border:solid 1px blue; width:200px; height:100px; background:white'>
<div style='background:blue; text-align:center; color:white'>fejlec</div>
tartalom
</div>
<script language=''javascript''>
xdiv.onmousedown = function(e){
[...]
</script>
'');
és csak az első <div>-et rakja sztring-színűbe az utána következő enter-től már sima html-szövegként értelmezi..
mindegy, most már megvan '+'-okkal összefűzve, működik is, csak kicsit ronda a kód..
----
a probléma most csak annyi, hogy berakja ugyan a JS ezt a kódot, meg is jelenik a mozgatható div a lapon, csak éppen mozgatni nem lehet..
ha nem js-sel illesztem be, hanem a lap forrásába írom nyersen, akkor ok.. de nekem nem ez kell -
emitter
őstag
idegen domainról lerakott cookie-t sehogyan nem tudok olvasni? Saját gépemen fut egy script, (tehát nem szerverről) és a PH! által lerakott cookie-t szeretném vele megetetni..
function getCookie(c_name){
if (document.cookie.length>0){
c_start=document.cookie.indexOf(c_name + ''='')
if (c_start!=-1){
c_start=c_start + c_name.length+1
c_end=document.cookie.indexOf('';'',c_start)
if (c_end==-1){
c_end = document.cookie.length
}
return unescape(document.cookie.substring(c_start,c_end))
}
}
return null
}
ez csak olyan cookira működik, aminek a domain-ja FALSE (egyébként csak azok ilyenek, amelyeket nem egy webszerver rakott le?)
hogyan tudnám a ph cookie-t olvasni? -
emitter
őstag
hali!
jobbegérgombot szeretnék detektálni, hogyan kell?
találtam egy ilyen példát, de nem teljesen értem..
function doSomething(e)
{
var rightclick;
if (!e) var e = window.event;
if (e.which) rightclick = (e.which == 3);
else if (e.button) rightclick = (e.button == 2);
alert('Rightclick: ' + rightclick); // true or false
}
van egy objektumom, onclick-nél meghívok rá egy js-t, ami akkor nyitna meg egy weblapot, ha az nem jobbegérgomb volt ezt hogyan tudom legegyszerűbben megoldani? -
emitter
őstag
ez a kérdéses kódom; html-rész:
...
<statusbarpanel onclick=''myfunc();'' ...>
...
próbáltam így is hívni:
<statusbarpanel onclick=''myfunc;'' ...>
de sehogy sem jó, nem nyit meg semmit egyik egérgombra se
majd a js-fv ez:
myfunc(e){
var rightclick;
if (!e) var e = window.event;
if (e.which) rightclick = (e.which == 3);
else if (e.button) rightclick = (e.button == 2);
if(!rightclick) {
window.location.href = ''http://www.prohardver.hu'';
}
}
----
a másik kérdésem, hogy ezt a window.location.href-t hogyan kéne átírni úgy, hogy az oldalt normálisan nyissa meg (pl. _self-ként), mert most úgy nyitja meg hogy a teljes ablakot elfoglalja a PH, nincsen semmilye toolbar, jobbgomb nem működik, se a backspace
thx!
[Szerkesztve] -
emitter
őstag
erre valaki? fontos lenne
a másik kérdésem, hogy ezt a window.location.href-t hogyan kéne átírni úgy, hogy az oldalt ''normálisan'' nyissa meg (pl. _self-ként), mert most úgy nyitja meg hogy a teljes ablakot elfoglalja az új oldal, nincsen semmilyen toolbar, jobbgomb nem működik, se a backspace
thx!
w3schools-on kívűl tudok mondani jó js-referencia oldalt? előbbi nem túl bőbeszédű, csak az alapok vannak rajta, kérdésemre pl. nem is találtam ott választ -
emitter
őstag
up!
újabb kérdés merült fel:
dinamikusan generálok XUL-elemeket (popup-menübe listaelemeket)
amikor egy menuitem tulajdonságait generálom, miért nem tudok az oncommand-nak js-fv-t átadni?
var links = new Array();
[...]
for(i=0; i<5; i++) {
links[ i ] = new Array(2);
links[ i ][0] = ''link''+i;
links[ i ][1] = ''http://www.link''+i+''.hu'';
}
[...]
for(i in links) {
var tempItem = null;
tempItem = document.createElement(''menuitem'');
tempItem.setAttribute(''label'', links[ i ][0]);
tempItem.setAttribute(''oncommand'', ''alert('hello');'');
tempItem.setAttribute(''selected'', ''true'');
popup.appendChild(tempItem);
}
ez működik, de ha omcommand-ra ezt akarom csinálni: tempItem.setAttribute(''oncommand'', ''alert(links[ i ][1]);'');
akkor az már nem megy..
mod: béna ph-motor
ugye jól csináltam a 2-D tömböt?
[Szerkesztve] -
emitter
őstag
a másik kérdésem, hogy ezt a window.location.href-t hogyan kéne átírni úgy, hogy az oldalt ''normálisan'' nyissa meg (pl. _self-ként), mert most úgy nyitja meg hogy a teljes ablakot elfoglalja az új oldal, nincsen semmilyen toolbar, jobbgomb nem működik, se a backspace
thx!
Már csak ez kéne, a többit sikerült megoldanom nagy nehezen de erre tényleg nem találtam megoldást! Persze, lehet, hogy egy nap alatt megtalálom guglin a megoldást, de miért pazaroljak el ennyi időt egy ilyen egyszerű dologra? légyszi ha valaki tudja, segítsen!
MOD: window.location.href vagy window.document.location.href vagy document.location.href - egyik sem működik, mind egész-ablakosba nyitja..
[Szerkesztve] -
emitter
őstag
Egy elméleti kérdés:
Ha én egy függvénynek átadok egy tömböt, majd a benne változtatom az átadott tömb elemeit, akkor ez az eredeti külső tömböt is változtatja?
function myfv( tomb ) {
for(var i in tomb) {
tomb[ i ] = escape(tomb[ i ]);
...
}
...
return mysztring;
}
...
var mytomb = new Array();
var vmi = '';
...
vmi = myfv( mytomb );
Most ne a kód értelmét nézzük, ez esetben a mytomb főprogrambeli értéke megváltozik vagy nem? Van egy olyan érzésem, h igen, de nem tudom miért
[Szerkesztve] -
emitter
őstag
válasz matekmatika #568 üzenetére
nem, mert a fv nem tömböt ad át, hanem sztringet.. én arra akartam rákérdezni, hogy annak ellenére, hogy a manipulált tömböt nem adjuk át a főprogramnak, mégis megváltozhat-e a fv-nek átadott főprogrambeli tömb értéke, elemei
de végülis már mindegy a válasz, mert megoldottam egy második (temp) tömbbel
csak úgy érdekelt volna, mert nem evidens -
emitter
őstag
objektum-elméleti segítség kellene... hogyan kell normálisan objektumot létrehozni (mondjuk osztályt)
egyik sem jó eddig:
myObject = {
myfunc1 : function() {...},
myfunc2 : function() {...},
...
myfunc6 : function() {...}
}
hívás:
var testObj = new myObject;
testObj.myfunc1();
...
--------
és így sem jó:
myObject : function() {
this.myfunc1 : function() {...};
this.myfunc2 : function() {...};
...
this.myfunc6 : function() {...};
};
hívás:
var testObj = new myObject();
testObj.myfunc1();
----------------------
És mindkettőt elvileg JS-objektum-howto-ként találtam, nem értem, miért nem mennek...
thx! -
emitter
őstag
fel!
szóval a kérdés újra: hogyan tudok olyan objektumot létrehozni, amiben függvényeket és változókat tudok tárolni. A C++ osztályához hasonló dolog kéne
thx
ui: gugliztam már eleget, de minden JS-leírás másképpen írja le ezt az objektum-dolgot, és persze egyik sem működik...
Most már nagyon örülnék neki, ha egy működőképes prototípust láthatnék... -
emitter
őstag
válasz paramparya #582 üzenetére
köszi, megnézem!
más: ha ki akarok íratni sztringben egy ''változó értéke+1''-et, azt hogyan tehetem?
document.write( (i+1) + '' link'');
ez nem jó, akkor hogyan
az túl parasztos lenne, hogy kiírás előtt i++; majd utána i--;
thx -
emitter
őstag
Mi van akkor, ha nekem van egy xy-nevű függvényem, és egy szintén xy-nevű globális változóm:
...
var sameName = 5;
...
function sameName() {...}
és egy objektumon belül ezt írom:
function myObject() {
this.name = sameName;
...
mert amit kaptam objektumos-leírást, abban az van, hogy amikor az objektumon belül egy tagfüggvényt akarunk meghívni, akkor azt külső fv-ként kell definiálni, majd az objektumból értékadással meghívni... ez kicsit furcsa C++-hoz képest, de ha így kell, akkor hogyan tehetek különbséget fv és glob. változó között
köszi -
emitter
őstag
én is ezt kérdeztem, de már mindegy, közben megtaláltam a megoldást, csak nem volt nagyon egyértelmű... a lényeg, hogy JS-ben elég sokféleképpen meg lehet oldani mind a fv-definiálást, mind az objektum-felépítését (gondolok itt tagfüggvényekre)
---
az lehet szerintetek, hogy egy szintaktikai kiemelést tudó program csak 100 sor mélységig nézi a zárójelpárokat? Ettől még a fordítóprogram ugye végtelen mélységig elemzi őket, szóval attól még, h a szerkesztőm nem jelöli meg párként a szerintem összetartozókat, attól még a kód helyes
ezerszer átnéztem, tuti, hogy a szerkesztő nem elég ''okos''
sajnos nem tudom ezt a mélységet sehol sem állítani -
emitter
őstag
nem a zárójelek mélysége a gond, hanem a sorok sokasága...
szóval van egy objektumfüggvényem (vagy mi ), és azon belül van vagy 10 db tagfüggvény. És ezek együttes hossza meghaladja a 100 sort, ezért nem színezi már a fő-zárójelet.
Ha mondjuk csak 6 tagfüggvényt veszek bele az objektumba, ami így kevesebb mint 100 sor, akkor jól színezi a fő-zárójelpárt is
Na mindegy -
emitter
őstag
ezt megoldottam úgy, hogy a sameName() fv-t az objektumon belül, tagfv-ként definiáltam.
ok
viszont újabb probléma: van egy adattagom, amire értékadásként egy tagfv-t hívok meg:
//maga az objektum
function managePHPrefs() {
//adattag
this.prefs = initPrefs;
//tagfuggveny
this.initPrefs = function() {
...
}
...
}
elvileg (parampyra linkelt oldala szerint) ez így szintaktikailag helyes. De vmi miatt nem működik...
próbáltam már többféleképpen is:
//maga az objektum
function managePHPrefs() {
//adattag
this.prefs = initPrefs();
//tagfuggveny
this.initPrefs = function() {
...
}
...
}
---------------------------------------
//maga az objektum
function managePHPrefs() {
//adattag
this.prefs = this.initPrefs();
//tagfuggveny
this.initPrefs = function() {
...
}
...
}
Egyik sem jó -
emitter
őstag
nem igaz egyszerűen, hogy nincs a neten egy normális, teljesértékű JS-referencia
akik megalkották a JS-t, miért nem adtak hozzá rögtön egy refet???
sehol nem találtam eddig normálisan összeszedett leírást, példákkal! arról, hogy mi a helyes szintaktika (több is van, ezért nem egyértelmű az ügy)
minden oldlaon csak egyféle szintaktikával láttam példákat, és azok is túl egyszerűek voltak, nem mutattak példát olyanra, hogy tagfüggvényből tagfüggvény hívása; adattagra tagfüggvény meghívása; és egyáltalán mi egy tagfv. meghívásának helyes szintaktikája! Hova kell this operátor, ki kell-e a rakni paraméternélküli-híváskor az üres ()-párt, stb
vááá, itt szopok ezzel már 2-3 órája -
emitter
őstag
válasz paramparya #595 üzenetére
sajnos nincs benne ilyenről szó ez sem elég mély a témában, főleg nem hoz olyan példát, ami nekem kéne
azért köszi! -
emitter
őstag
válasz paramparya #597 üzenetére
köszi a segítséget! Nagy nehezen rájöttem a hiba okára, amiért nem ment nekem a dolog:
amikor egy adattagnak tagfüggvényen keresztül adok értéket, és a tagfv csak később van definiálva, mint az adattag, akkor az gáz. Ezt mondjuk eléggé furcsállom a JS-ben, mert függvényeknél pont az az előny van meg, hogy egyik fv úgy hívhatja a másikat, hogy közben az a másik később van csak definiálva... szóval nagyon érdekes dolog ez, de szerencsére rájöttem
thx a linkeket még egyszer, nagyon hasznos kis oldalak amúgy! -
emitter
őstag
nemtom, még nem jártam utána, de még nem olvastam ilyesmiről, szóval nagy az esélye, h nincs js-ben ilyen. De úgysem érdekes már
-----------
basszus, menten bekattanok
if( (i >= topicsShowed) || (i >=topicsSaved) ) {
alert(''topicsShowed = '' + topicsShowed);
alert(''topicsSaved = '' + topicsSaved);
alert(''i = '' + i);
break;
}
kiírja, hogy
topicsShowed = 15
topicsSaved = 10
i = 2
azaz, annak ellenére, hogy i se 10-nél, se 15-nél nem nagyobbegyenlő, mégis végrehajtódik az if mi a lópikula van itt már megint??? Néha nagyon furcsa dolgokat művel a Firefoxom... -
emitter
őstag
mondom, én is csodálkozom rajta, de ez van
a rossz sorrend:
function managePHPrefs() {
this.initPrefs = function() {
//initialize preferences-system
var prefs = Components.classes[''@mozilla.org/preferences-service;1''
.getService(Components.interfaces.nsIPrefBranch)
.getBranch( prefBranchName );
prefs.QueryInterface(Components.interfaces.nsIPrefBranch2);
return prefs;
}
this.prefs = this.initPrefs();
...
}
a helyes sorrend:
function managePHPrefs() {
this.prefs = this.initPrefs();
this.initPrefs = function() {
//initialize preferences-system
var prefs = Components.classes[''@mozilla.org/preferences-service;1''
.getService(Components.interfaces.nsIPrefBranch)
.getBranch( prefBranchName );
prefs.QueryInterface(Components.interfaces.nsIPrefBranch2);
return prefs;
}
...
}
Ha a rossz sorrendben írom, akkor FF azt mondja a JS-konzoljában, hogy nincs ilyen nevű fv... lehet h ez csak egyedi FF-értelmezés és amúgy a JS szabvány nem ez? -
emitter
őstag
Arra van lehetőség, hogy egy confirm-box -ra fókuszáljunk? Ha igen, hogyan kell azt?
Ha nem, akkor az a következő kérdésem, hogy egy jobbgombbal előhívott context-menüt el lehet-e tüntetni?
Igazából elég lenne ha a második dolog megoldható lenne... a baj az, hogy nem tudok erre hogyan ráguglizni
thx -
emitter
őstag
Ja, akkor nem voltam egyértelmű: nem letiltani kell, hanem eltüntetni, ha már egyszer felugrott. A FF-kiterjesztésembe kell. Mert mikor a jobbgombra felugró listában kattintok valamelyik listaelemre, felugrik hozzá tartozó confirm-ablak. De a fókusz még a popup-menün marad, az van az előtérben. Nekem az kéne, hogy ilyenkor a menü tűnjön el, és így egyúttal a fókusz a confirm-boxra kerülne.
Mégegyszer, mégsem a fókuszálást kell megoldani, hanem a menü eltüntetését.
menu.style.visibility=''hidden''-t már próbáltam, nem csinál semmit. (Csak akkor működik ez a hidden-es dolog, ha nem jön elő confirm-ablak. De az szükséges - és a hidden-es megoldás amúgy sem teljes, nem szép)