ugrás a tartalomhoz

Böngészőfüggetlen JavaScript

DevNULL · 2005. Júl. 30. (Szo), 11.34
Sziasztok

Nemrég találtam egy olyan oldalt, amihez le kellett szednem az Opera nevű böngészőt. De ha már lent volt kicsit próbálgattam.
De amikor megnéztem az oldalam (amit itthon csinálok tanulás céljából) nem működött benne a belerakott Javascript, pedig IE-vel simán ment.
Itt a weblaboron meg azt vettem észre, hogy a "Perl 6 alapjai I" cikk alján lévő képek IE-ben semmit nem csinálnak, viszont Operaban ha ráviszem az egeret kicsit előrrébb jönnek és nagyobbak lesznek.
Az én javascriptemben egy függvény van létrehozva és az a használat előtt egy sima

include("/js/javascript.js");
-el van beszúrva. Majd a függvény ilyen módon van használva

echo "<A href=\"#\"><IMG onmouseover=függvény(paraméterek) onmouseout=függvény(paraméterek) src=\"kép\" border=0></A>&nbsp;";
Hogy tiszta legyen: képek scroll-oznak jobbról balra egy kis négyzet alaku részben amit <MARQUEE>-val oldottam meg (ez működik is mindegyik böngészővel). A Js fv. feladata, hogy a képet átlátszóvá tegye ha nincs rajt az egér és ha rámegyek egérrel, akkor azátlátszóságot visszaállítja 100%-ra és megáll a scroll.

Jó hoszzúra sikerült a bevezető :-)
A kérdés az volna, hogy lehet-e a Js-t böngészőfüggetlenné tenni PHP-ben vagy esetleg máshogy kéne beszúrnom.
Vagy csak a Js-ben tudom megoldani.
Egyáltalán mitől függ, hogy egy Js megy-e az adott böngészőben vagy sem?
 
1

jajj

kmm · 2005. Júl. 30. (Szo), 11.48
kod?
js nek mi koze a phphez?
marquee!? phh...

Egyáltalán mitől függ, hogy egy Js megy-e az adott böngészőben vagy sem?

attol, hogy ismeri -e az adott bongeszo a scripted minden reszet.
javaslom kapcs be a js erorok figyeleset, es latod mi a hiba.

--
üdv: kmm... ( http://kmm.hu )
2

Muti a js-t, vagy az oldalad

zila · 2005. Júl. 30. (Szo), 12.09
Ezen kívül van valami oka, hogy php-ból szúrod be a js-t?
a sima html beszúrás miért nem jó?

Célszerű idézőjelbe tenni a html paramétereit (onMouseOver="fgv(params);").

Javascriptek debugolására nagyon jó a Venkman nevű firefox/mozilla extension.

üdv,
Zila
3

Válaszok...

DevNULL · 2005. Júl. 31. (V), 22.53
Ez a Js kód
<SCRIPT language=JavaScript>
<!--
nereidFadeObjects = new Object();
nereidFadeTimers = new Object();
function nereidFade(object, destOp, rate, delta) {
if (!document.all) return
if (object != "[object]") {
setTimeout("nereidFade("+object+","+destOp+","+rate+","+delta+")",0);
return;
}
clearTimeout(nereidFadeTimers[object.sourceIndex]);
diff = destOp-object.filters.alpha.opacity;
direction = 1;
if (object.filters.alpha.opacity > destOp) {
direction = -1;
}
delta=Math.min(direction*diff,delta);
object.filters.alpha.opacity+=direction*delta;
if (object.filters.alpha.opacity != destOp) {
nereidFadeObjects[object.sourceIndex]=object;
nereidFadeTimers[object.sourceIndex]=setTimeout("nereidFade(nereidFadeObjects["+object.sourceIndex+"],"+destOp+","+rate+","+delta+")",rate);
}
}
//-->
</SCRIPT>


De hozzá kell tennem ezt nem én csináltam csak kiszedtem egy oldalból és mindössze lecsupaszítottam amire nekem kell.
Ez már a használata az oldalon.

echo "<TABLE id=Header height=122  cellSpacing=0 cellPadding=0 width=900 border=0>";
echo "<TR><TD vAlign=top align=left width=395 height=94 background=\"theme/pictures/header-logo1.gif\">";

echo "<DIV id=layer1 style=\"Z-INDEX: 1; LEFT: 524px; WIDTH: 256px; POSITION: absolute; TOP: 50px; HEIGHT: 55px\">";
echo "<MARQUEE onmouseover=this.scrollAmount=0 onmouseout=this.scrollAmount=3 scrollAmount=3>";
include("js/scroll1.js");
echo "<A href=\"#\"><IMG onmouseover=nereidFade(this,100,20,10) style=\"FILTER: alpha(opacity=30)\" onmouseout=nereidFade(this,20,5,5) alt=\"Ez itt az alt szöveg\" src=\"pictures/Anastasia-k.jpg\" border=0></A>&nbsp;";
echo "</TD></TR></TABLE>";


A Js-t azért úgy szúrom be, mert gondoltam, ha lesz még akkor jobb ha külön tartom őket a könyebb átláthatóság miatt. Ezért bekerültek egy /Js könyvtárba és ha kell onnan szúrom be. Így ha változtatom akkor elég itt és nem kell mindenhol összevadászni.
A MARQUEE-t a táblázatban használom, az csinálja a scroll-t.
Amúgy a HTML paraméterek idézőjelekben vannak csak a kérdésnél nem raktam közé (sorry)

Ja és felraktam amit csináltam aki akarja nézze meg. Nem működik még minden rajta, de lassan és biztosan fog :-)
A cím: http://vampireccg.uw.hu

Ja azt még hozzáteszem, hogy a Js-en kívül (amit írtam is hogy nem az én művem csak átalakítottam) mindent én csináltam. És kezdek rá büszke lenni, mert a felmerülő hibákat, ha idővel is de megoldom. :-)
(A könyvtár és fájlrendszernek egy kicsit PHP-Nuke beütése van, mivel annak portálnak nézegettem sokat a felépítését)
Ja és sorry, hogy a kódok nincsenek színezve, de mióta azt a béna bakit csináltam, mert nem jelezte a szerkesztőm, azóta visszatértem notepad-ra.

Majdnem elfelejtettem mondani, hogy a scroll a jobb felső sarokban van, bár gondolom ez elég egyértelmű :-)))))))
4

böngészőfüggetlenség

Hojtsy Gábor · 2005. Aug. 1. (H), 10.51
Namost eltartott egy ideig mire felfogtam, hogy neked mi a problémád: böngészőfüggetlen JavaScriptet akarsz csinálni. Ezt nem kellene a PHP-vel keverni, nem az eszközt kellene előre kitalálnod, ha nem tudod a megoldást, hanem a problémát lenne érdemes jól megfogalmazni. Ehhez írtam át a címet, és tettem át a témát a megfelelő helyre.

Szóval böngészőfüggetlen kódoláshoz először is tisztában kellene lenni azzal, hogy mi az az alap szabvány, amit minden böngészőtől elvárhatsz, és azt kellene követni. Ha azzal nem tudsz valamit megoldani, akkor érdemes külön böngészőspecifikus kérdésekbe menni. A marquee például nem szabványos. A probléma már itt kezdődik. A böngészőfüggetlen JavaScript megoldásokhoz az ECMAScript és a DOM a kulcsszavak (innen pedig Google).
5

Ok

DevNULL · 2005. Aug. 1. (H), 12.05
Kösz a felvilágosítást
6

Opera

attlad · 2005. Aug. 1. (H), 12.52
Átlátszóságot az Opera nem támogatja ha jól tudom. Firefoxban, Safariban viszont meg tudod csinálni, hogy működjön, Firefox a "szabványban" leírt megoldást használja (CSS opacity).

Attila
7

Köszönet a válaszért

DevNULL · 2005. Aug. 1. (H), 13.31
Tényleg ezer köszönet.
Vannak még akik normálissan is tudnak válaszolni a kérdésekre.
Evvel nem megsérteni akarok másokat, de vannak olyan válaszok amik számomra enyhe kioktató jellegűek és arra utalnak, hogy mi a francot akarok én itt ilyen dolgokkal, ahelyett hogy rendesen megtanulnám.
A megtanulással nincs is semmi gond, de valószínű ha ide teszek fel kérdést akkor azt lehet azért teszem, mert nem jöttem rá a megoldásra.
Nem vagyok vérprofi mert akkor valószínű nem kérdezgetnék itt.

Bocs de ezt már muszály volt, mert sokan a rövid és egyszerű válaszok vagy egyszerű példák helyett a számomra semmi segítséget nem nyújtó kioktató válaszokat adják.

Ja és az oldalt letöröltem úgyhogy a link nem működik, mert nem kellett egy óra és valaki belerondított és max innen jöhetett mert máshonnan nem lehetett olyan gyorsan megtudni mi is van ott (ha nem innen volt akkor bocs). Ja és persze ahelyett hogy szólt volna itt, hogy mi a gond beleírogatott az oldalba. (némiképpen az én hibám is volt mert kár volt feltételezni, hogy csak jó szándékkal nézik meg)
9

<Nincs cím>

sayusi · 2005. Dec. 14. (Sze), 22.54
pedig szerettem volna megnézni... :(

Bízzál Istenben és tartsd szárazon a puskaport!" -Cromwell
8

<Nincs cím>

Anonymous · 2005. Dec. 14. (Sze), 21.44
Sziasztok

Ha jól látom , a képek scrollozásához a MARQUEE tag nem a legmegfelelőbb/legszebb megoldás.Tudtok valami címet mondani ahol ez a probléma szebben (javascripttel) van megoldva?

köszönöm