Avatar billede thomasabcd Nybegynder
08. august 2006 - 17:52 Der er 11 kommentarer og
1 løsning

load script onload()

Hej,

på min side har jeg en javascript-funktion. Hvordan binder jeg den til sidens onload()-event? Antager, at jeg skal bruge Page.ClientScript et eller andet.
Avatar billede snepnet Nybegynder
08. august 2006 - 17:56 #1
Hvis du bare vil køre det én gang når siden starter, kan du benytte
.ClientScript.RegisterStarUpScript(...)
Ellers kan du sætter runat="server" på din body:
<body id="body" runat="server">
Og gøre sådan her:
body.Attributes.Add("onload","scriptKald();");

Mvh
Avatar billede websam Nybegynder
08. august 2006 - 17:56 #2
Det er så vidt jeg husker Page.RegisterStartupScript og med en søgning google fandt jeg en række sider der forklare hvordan du bruger det ;o)

http://www.google.dk/search?hl=da&q=Page.RegisterStartupScript&meta=

/Websam
Avatar billede websam Nybegynder
08. august 2006 - 17:57 #3
Damn du er hurtig snepnet *GGGG*

/Websam
Avatar billede websam Nybegynder
08. august 2006 - 18:01 #4
Avatar billede thomasabcd Nybegynder
08. august 2006 - 18:08 #5
Har tidligere brugt body.Attributes.Add(.......) men er ved at lege lidt med Community Server, og der kan jeg ikke tilgå body på samme måde. RegisterStartUpScript fungerer for så vidt, men den kalder ikke min javascript metode. Istedet skrives navnet på min metode nederst på siden
Avatar billede thomasabcd Nybegynder
08. august 2006 - 18:15 #6
fandt en lidt hacket måde at gøre det på:
string js = "<script language=JavaScript>ShowFriends('"+xml.InnerXml+"','"+map.ClientID+"')</script>";

Page.ClientScript.RegisterStartupScript(this.GetType(), "js", js);
Avatar billede websam Nybegynder
08. august 2006 - 18:22 #7
Det er jo oxo den måde de viser det på MSDN :

Public Sub Page_Load(ByVal Sender As Object, ByVal e As EventArgs)
        If (Not Me.IsStartupScriptRegistered("Startup")) Then
          ' Form the script to be registered at client side.
          Dim scriptString As String = "<script language=JavaScript> function DoClick() {"
          scriptString += "showMessage2.innerHTML='<h4>Welcome to Microsoft .NET!</h4>'}"
          scriptString += "function Page_Load(){ showMessage1.innerHTML="
          scriptString += "'<h4>RegisterStartupScript Example</h4>'}<"
          scriptString += "/"
          scriptString += "script>"
          Me.RegisterStartupScript("Startup", scriptString)
        End If
      End Sub

/Websam
Avatar billede websam Nybegynder
08. august 2006 - 18:24 #8
Og det samme i C# :

public void Page_Load(Object sender, EventArgs e)
      {

        if (!this.IsStartupScriptRegistered("Startup"))
        {
          // Form the script to be registered at client side.
          String scriptString = "<script language=JavaScript> function DoClick() {";
          scriptString += "showMessage2.innerHTML='<h4>Welcome to Microsoft .NET!</h4>'}";
          scriptString += "function Page_Load(){ showMessage1.innerHTML=";
          scriptString += "'<h4>RegisterStartupScript Example</h4>'}<";
          scriptString += "/";
          scriptString += "script>";
          this.RegisterStartupScript("Startup", scriptString);
        }
      }

Så det er vel blot den måde det skal gøres på ;o)

/Websam
Avatar billede thomasabcd Nybegynder
08. august 2006 - 18:34 #9
Havde regnet med, at der var en pænere måde at gøre det på. Jeg har jo allerede min javascript funktion på min side, så ovenstående er vel at indføre et ekstra led istedet for på en eller anden måde at kalde min javascript funktion direkte.

Desværre er det vist ikke helt løsningen alligevel :-( Jeg er ved at lave noget Google Maps og skal derfor registrere en funktion både ved "onload" og ved "onunload". Ovenstående er ok til "onload", men hvordan registrerer jeg javascript, som køres ved "onunload" ?
Avatar billede websam Nybegynder
08. august 2006 - 19:12 #10
Mit bedste by vil være denne :

http://msdn2.microsoft.com/en-us/library/system.web.ui.control.unload.aspx

Men jeg er ikke sikker på at det er løsningen da det umiddelbart ser ud til at det er på .net controller.

/Websam
Avatar billede thomasabcd Nybegynder
08. august 2006 - 19:41 #11
Jeg gjorde således:
string unloadMap = "<script language=JavaScript>window.onUnload='GUnload()'</script>";
                if (!Page.ClientScript.IsClientScriptBlockRegistered("unloadMap"))
                    Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "unloadMap", unloadMap);

Håber det løste det.

Smid venligst svar
Avatar billede websam Nybegynder
08. august 2006 - 21:18 #12
kommer her ;o)
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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