Avatar billede quaser Nybegynder
24. juni 2003 - 10:47 Der er 1 løsning

Hvordan laves valid javascript starttag i asp.net

Hej

Jeg vil gerne have min asp.net output kan valideres til xhtml eller bare html 4.01, men det giver mig et ret stort problem.

Asp.net's javascript starttag:
<script language="javascript">

Men det skal være:
<script type="text/javascript">

Jeg har prøvet at løse det på flere måder, men uden for meget held.

De første metoder, som ikke virker. Jeg har overrided RegisterClientScriptBlock og RegisterStartupScript i min page class.

  public override void RegisterClientScriptBlock(string key, string script)
    {
      System.Text.RegularExpressions.Regex regEx = new System.Text.RegularExpressions.Regex("<script language=\"javascript\">",System.Text.RegularExpressions.RegexOptions.IgnoreCase);
      script = regEx.Replace( script,"<script type=\"text/javascript\">" );
      base.RegisterClientScriptBlock (key, script);
    }
    public override void RegisterStartupScript(string key, string script)
    {
      System.Text.RegularExpressions.Regex regEx = new System.Text.RegularExpressions.Regex("<script language=\"javascript\">",System.Text.RegularExpressions.RegexOptions.IgnoreCase);
      script = regEx.Replace( script,"<script type=\"text/javascript\">" );
      base.RegisterStartupScript (key, script);
    }


Ved at tilføje det fik jeg ændret 1 ud af 4 starttags. Så ikke brugbar.
Og den behandler ikke starttag til doPostback scripttet.

Mit andet forsøg som godt nok virker, men ikke kan være særlig godt ydelsemæssigt:

    protected override void Render(HtmlTextWriter writer)
    {
      StringBuilder stringBuilder = new StringBuilder();
      StringWriter stringWriter = new StringWriter(stringBuilder);
      HtmlTextWriter htmlWriter = new HtmlTextWriter(stringWriter);
      base.Render(htmlWriter);
     
      string html = stringBuilder.ToString();
      System.Text.RegularExpressions.Regex regEx = new System.Text.RegularExpressions.Regex("<script language=\"javascript\">",System.Text.RegularExpressions.RegexOptions.IgnoreCase);
      html = regEx.Replace( html,"<script type=\"text/javascript\">" );
      writer.Write(html);
    }

Her går jeg igennem hele outputtet, for at finde de forskellige scripttags.


Jeg vil gerne have en anden metode at gøre dette på og evt. nogle ideer om, hvor meget performance loss der er ved min nuværende metode.
Avatar billede quaser Nybegynder
15. august 2003 - 13:33 #1
Lukker da der desværre ikke var nogen der kunne svare.
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