Szia Peter! Az ujsag tegnapi szamaban irtad:
<HTML><HEAD>
<SCRIPT language="JavaScript1.1">
function be() {
document.images[0].src = "be.gif"
}
function ki() {
document.images[0].src = "ki.gif"
}
</SCRIPT></HEAD>
<BODY><FORM>
<IMG src="ki.gif">
<P>
<INPUT type="button" onClick="be();" value="BE">
<INPUT type="button" onClick="ki();" value="KI">
</FORM></BODY></HTML>
=================
>Itt megfurcsabb modon az volt a hibauzenet valamelyik gombra kattintva,
>hogy a be()/ki() nincs definialva! Hat ezt meg annyira sem ertettem. Ugy
>tudom, hogy ez egy tok szabvanyos kod. Hol rontottam el?
Semmi baj a kododdal. Az egy jo pelda arra, hogyan kell dinamikusan
image-ekat cserelni egy helyben. Mukodik a kovetkezo browserokkal:
Netscape Navigator 3.2
Netscape Navigator 4.0.3
Internet Explorer 4.0
Az Internet Explorer 3.0.2-vel valoban kap az ember egy hibauzenetet, hogy
egy image az nem egy objektum. De ha jol megnezed, ezt az uzenetet a
JScript ertelmezoje irja ki. Ennek oka az a regota tudott teny, hogy
Netscape az altala bevezetett JavaScript specifikaciojat nem tette kozze
egy felevig. Microsoftnak VBScriptjet viszont a Netscape nem ismeri fel.
Igy az MS kijott a JScripttel, amely egy "best guess" alapjan keszult,
specifikacio hijjan, a celbol, hogy az IE tudjon JavaScriptet is kezelni.
A "best guess" miatt a JavaScript 20%-a nincsen implementalva, vagy maskeppen
mukodik. Ebbe esik be az Image is. Ezzel a problemaval a legtobb Web
keszito mar 1 eve szembenezett, es tobb fele megoldassal jottek ki.
A problema az IE 4.0 vegleges bevezetesevel meg is szunt.-
Az en megoldasom a kovetkezo: minthogy Imaget nem kezel a regi IE (de
amint lathatod az IE 4.0 mar igen), viszont image map-et tud, en ezert
a Te altalad felvetett problemat (dinamikus image-ek) image mappel
oldottam meg. Ez nem csak mukodik mindket browserrel, hanem elegansabb
is, mert nincs szukseg gombokra. Sot az IE 4.0 es a Netscape-ek eseteben
meg kattintani sem kell, amint elmozditod a kurzort a keprol, automatikusan
beugrik a masik kep! A regi IE 3.02 eseten a kepen kattintani kell,
hogy a masik megjelenjen. De mond mar, lenyeg, hogy a megoldassal bizton-
sagban vagy: senki nem kap semmifele hibauzenetet.
A teendo tehat ket rovid HTML file keszitese. A mintat az alabbiakban
kozlom:
A file neve: elso.html
> --------------------------------------------------------------------------
<HTML><HEAD></HEAD>
<BODY>
<MAP NAME="mymainmap">
<AREA COORDS="20,4,400,100" HREF="masodik.html"
onMouseOver="document.images[0].src='ki.gif';"
onMouseOut="document.images[0].src='be.jpg';">
</MAP>
<CENTER>
<IMG SRC="be.jpg" WIDTH=160 HEIGHT=120 BORDER=0 USEMAP="#mymainmap">
</CENTER>
</BODY></HTML>
> ----------------------------------------------------------------------------
Ennek a file-nak neve: masodik.html
<HTML><HEAD></HEAD>
<BODY>
<MAP NAME="mymainmap">
<AREA COORDS="20,4,400,100" HREF="elso.html"
onMouseOver="document.images[0].src='ki.gif';"
onMouseOut="document.images[0].src='be.jpg';">
</MAP>
<CENTER>
<IMG SRC="ki.gif" WIDTH=160 HEIGHT=120 BORDER=0 USEMAP="#mymainmap">
</CENTER>
</BODY></HTML>
> ----------------------------------------------------------------------------
----
Udvozol: Szabolcs
http://www-rcf.usc.edu/~petrovay/
|