Avatar billede kjoller Nybegynder
08. august 2001 - 09:44 Der er 10 kommentarer og
1 løsning

submit med mouseover

Den sider at document[...]\' er ikke et objekt

hvad kan der være i vejen?

img = new Image;

function changeImg(imgName, target) {
  img.src =  \"../grafik/\" + imgName;
  document[target].src = img.src;
}

<input type=\"Image\" src=\"../grafik/vogn.GIF\" name=\"pic\" onclick=\"return(validate(\'bestil\'))\" onMouseover=\"changeImg(\'vogn_over.gif\', \'pic\')\" onMouseout=\"changeImg(\'vogn.gif\', \'pic\')\" >

Avatar billede vandhunden Nybegynder
08. august 2001 - 09:48 #1
har du prøvet i alle browsere, koden er faktisk ofte forskellig fra browser til browser...
Avatar billede roenving Novice
08. august 2001 - 09:49 #2
For det er det ikke !

Objekter er properties til document (eller properties til properties ... ), så du må:

document.frames[target].src = img.src;

hth
jes
Avatar billede kjoller Nybegynder
08. august 2001 - 09:49 #3
fejlen kom i ie 5, men i nescape sker der bare ikke noget
Avatar billede kjoller Nybegynder
08. august 2001 - 09:52 #4
så kommer der bare document.frames[...]\' er ikke et objekt
Avatar billede roenving Novice
08. august 2001 - 09:53 #5
À propos browsere ...

Hvis du bruger en af de senere browsere fra det nordvestlige USA, kan du bruge:

document.All[target].src = img.src;

-- mit første svar forudsatte (helt sikkert fejlagtigt), ar det var en frame.

Men hvis det er et billede (<IMG>), så bli\'r jeg lidt usikker ...

men prøv

document.frame[0].elements[target].src = img.src;

hvor 0\'et kan udskiftes med dit framenavn.

hth
jes

Avatar billede roenving Novice
08. august 2001 - 09:54 #6
Forøvrigt ... hvorfor

function changeImg(imgName, target) {
  img.src =  \"../grafik/\" + imgName;
  document[target].src = img.src;
}

enklere:

function changeImg(imgName, target) {
  document.frame[0].elements[target].src = \"../grafik/\" + imgName;
}
Avatar billede kjoller Nybegynder
08. august 2001 - 10:03 #7
ja, det ved jeg ikke den er jo meget nemmere :o) Nå men
document.All[target].src = img.src; virkede, dette document.frame[0].elements[target].src = img.src; gjorde ikke. Så nu du skriver \"de senere browsere\" hvilke tænker du så på?
Avatar billede roenving Novice
08. august 2001 - 10:13 #8
Såvidt jeg husker er det ie5, som fik dette array (All) med, og den bruges bl.a. i en masse browserdetect-scripts, da den kan bruges som en god indikator for hvad browseren kan.
Avatar billede kjoller Nybegynder
08. august 2001 - 10:37 #9
nå men det er tæt nok på så du må have tak for hjælpen
Avatar billede jakoba Nybegynder
08. august 2001 - 19:47 #10

din parameter  target  får navnet på dit image  \'pic\'
så det image bør adresseres med  document.images[target]
lav funktionen om til:

function changeImg(imgName, target) {
  img.src =  \"../grafik/\" + imgName;
  document.images[target].src = img.src;
}

det skulle være nok

mvh JakobA
Avatar billede jakoba Nybegynder
08. august 2001 - 19:53 #11
Nåe ner. det billede der ligger i en  type=\"input\"  button kan såvidt jeg har fundet ud af slet ikke adresseres igennem andet end den knap.

<script>
img = new Image;

function changeImg(imgName, target) { // ændret target så det er knappen selv.
  img.src =  \"../grafik/\" + imgName;
  target.src = img.src;
}
</script>

og ændre i imageknappen så det der sendes med er knappen selv ( this ) snarere end dens navn.

<input type=\"Image\" src=\"../grafik/vogn.GIF\" name=\"pic\"
    onclick=\"return(validate(\'bestil\'))\"
    onMouseover=\"changeImg(\'vogn_over.gif\', this)\"
    onMouseout=\"changeImg(\'vogn.gif\', this)\" >

din  name=\'pic\'  parameter er så overflødig, medmindre du bruger den til noget andet :)

mvh JakobA
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester