Avatar billede trayzor Nybegynder
17. september 2002 - 16:37 Der er 13 kommentarer og
1 løsning

eksekver funktion når siden loader uden brug af <body> tagget

Jeg har et lidt specielt problem.

Jeg har lavet en kerne der eksekverer alle mine php funktioner og alt sådan noget. Der i er <body> tagget.

Denne kerne parser nogle html dokumenter og sætter dem ind i content området på skallen til systemet.

Problemet består af følgende:

I et af de html dokumenter jeg har skal en javascript funktion eksekveres når siden loader. Men jeg har ingen <body> tag at sætte en eventhandler i, da denne er placeret i skallen til siden.

Nogen der har en ide hvordan man eksekverer en funktion på andre måder når siden loader?

Spørg endelig hvis jeg har forklaret det uklart.

/Michael
Avatar billede nikolajdu Nybegynder
17. september 2002 - 16:50 #1
HVis det kun er ét af dokumenterne hvorfor loader du så ikke en anden header ind der... Altså en hvor scriptet rent faktisk aktiveres.

Alternativt mener du så noget alá det her?

<script>
body.onload = function hej(){alert("hej hej siden er loadet")}
</script>
Avatar billede trayzor Nybegynder
18. september 2002 - 09:12 #2
har du testet det? For jeg kan ikke få det til at virke...
Avatar billede o-zone Nybegynder
18. september 2002 - 11:47 #3
kan du ikke bare skrive noget i retning af:
<body onLoad="parent.functionX('blablabla')">
i dokumentet du loader i framesettet?
...eller har jeg misforstået hvad det er du vil?
Avatar billede o-zone Nybegynder
18. september 2002 - 11:53 #4
ups ... he he he ... det var jeg vist lidt hurtig :)

Det er window der har eventhandleren onload, så det burde være ok at skrive:
window.onload = "yadayadayada; return true;"

(jeg har dog ikke testet det, men sig lige til hvis det ikke virker :) )
Avatar billede trayzor Nybegynder
18. september 2002 - 11:54 #5
det er ikke et decideret frameset.

Det er en 'skal' der består af selve rammerne for systemet. Inklusiv <body> tagget. Deri inkluderes forskellige templates.

I EN af disse templates skal jeg eksekvere en js funktion der kun er beskrevet i denne template. Så for ikke at skulle eksekvere denne funktion hver gang hvilken som helst anden side loades skal jeg have fundet en løsning så den kun eksekveres når denne ene side loades.

Og uden brug af <body> tagget...

Bedre?
Avatar billede trayzor Nybegynder
18. september 2002 - 11:58 #6
jeg kan ikke få den til at virke....

er window.* ikke kun til netscape4+?
Avatar billede nikolajdu Nybegynder
18. september 2002 - 12:35 #7
næhh...
Avatar billede o-zone Nybegynder
18. september 2002 - 12:36 #8
næeh - window er det yderste (globale) javascript objekt i alle javascript enabled browsere! Så det burde virke ... men det hjælper dig selvfølgelig ikke meget, hvis det ikke gør det.

Kan du ikke prøve at paste den færdige htmlkode der bliver sendt til klienten?
Avatar billede nikolajdu Nybegynder
18. september 2002 - 12:39 #9
Hvis du allerede har indsat din funktion på siden, så kan du bruge mit forslag.

<script>
body.onload = functionen();
</script>
Avatar billede trayzor Nybegynder
18. september 2002 - 12:47 #10
den eksekverer ikke funktionen i nogen af de to tilfælde.

Den kommer med en fejl man ikke når at se.
(det gule fejlikon i statuslinjen dukker op et splitsekund.)
Avatar billede nikolajdu Nybegynder
18. september 2002 - 13:05 #11
Hvordan ser din funktion ud???
Avatar billede trayzor Nybegynder
18. september 2002 - 13:07 #12
function updateCounter() {

      var fieldVal = new String(document.addreminder.smstemplate.value);

      if(fieldVal.indexOf("@@DATO@@")>=0) {
      var dateLength = 16-8;
      //16 is the length of the dateformat. 8 is the length of @@DATO@@.
      } else {
      var dateLength = 0;
      }

      if(fieldVal.indexOf("@@KUNDE@@")>=0) {
      var nameLength = document.addreminder.Cname.value.length - 9;
      //9 is the string length of @@KUNDE@@
      } else {
      var nameLength = 0;
      }

      var fieldLength = document.addreminder.smstemplate.value.length;

      var maxLength = 160;
      var maxMessageLength = maxLength - dateLength - nameLength;
      var counterVal = document.addreminder.counter.value;

      var presentDiff = maxMessageLength - fieldLength;
     
      document.addreminder.counter.value = presentDiff;


}
Avatar billede t_kris Nybegynder
18. september 2002 - 18:04 #13
Jeg ved ikke om din function kan køre der men global.asa
det er godt nok Vb men den har en function der heder
sub session_OnStart
Avatar billede trayzor Nybegynder
10. oktober 2002 - 17:09 #14
lukker nu....
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