Lars Stiedler: div style über Javascript ändern

Hi,

weiß jmd von euch wie man über Javascript Stylesheet Attribute als Returnwert an einen div Container übergeben kann?

  
<xsl:variable name="selItems" select="'UAE, AG'" />  
  
<div class="mydiv">  
  
<xsl:attribute name="style">  
<script type="text/javascript">  
javascript: UpdStyle(this,  
'<xsl:value-of select="$selItems" />')  
</script>  
</xsl:attribute>  
  

In diesem Fall wird die Funktion UpdStyle gar nicht aufgerufen. Im Prinzip möchte ich über die UpdStyle Funktion gewisse Parameter des div Containers beeinflussen können bzw. setzen können bevor dieser gezeichnet wird.

  
<div class="mydiv">  
  
<xsl:choose>  
<xsl:when test="(position()) = 1">  
<script type="text/javascript">  
javascript: UpdStyle(this,  
'<xsl:value-of select="$selItems" />')  
</script>  
</xsl:when>  
</xsl:choose>  

In diesem Fall wird die Funktion aufgerufen, aber nachdem der div Container (obj) noch nicht gezeichnet wurde, kann ich leider auch nicht den Style im Javascript setzen.

  
obj.style.height = (parseInt(height)) + 'px';  

Gruß
Lars

  1. Hi,

    [code lang=html]
    <xsl:variable name="selItems" select="'UAE, AG'" />

    Wie sieht der xsl-transformierte Code aus? Nur der ist relevant.

    <script type="text/javascript">
    javascript: UpdStyle(this,

    was soll das Label hier bewirken?

    In diesem Fall wird die Funktion UpdStyle gar nicht aufgerufen.

    Wie hast Du das überprüft?

    In diesem Fall wird die Funktion aufgerufen, aber nachdem der div Container (obj) noch nicht gezeichnet wurde, kann ich leider auch nicht den Style im Javascript setzen.

    Dann rufe die Funktion halt erst auf, wenn das div existiert.

    cu,
    Andreas

    --
    Warum nennt sich Andreas hier MudGuard?
    O o ostern ...
    Fachfragen per Mail sind frech, werden ignoriert. Das Forum existiert.
    1. Hi,

      <xsl:variable name="selItems" select="'UAE, AG'" />

      Wie sieht der xsl-transformierte Code aus? Nur der ist relevant.

      also bei diesem XSL Stylesheet:

      [code lang=html]

      <xsl:variable name="selItems" select="'UAE, AG'" />

      <div class="mydiv">
      <xsl:attribute name="style">
      width:{
      javascript: UpdStyle(this,
      '<xsl:value-of select="$selItems" />')}px;
      </xsl:attribute>

        
      sieht der HTML Code so aus:  
        
      ~~~html
        
      <div class="mydiv" style="  
                    width:{  
                    javascript: UpdStyle(this,  
                    'UAE, AG')}px;  
                  ">  
      
      

      In der Funktion UpdStyle hab ich zuerst einen alert("test") installiert, der allerdings nicht aufgerufen wird.

      Gruß
      Lars

      1. ok,

        beim 'this' liegt das Problem. Dieses 'this' entspricht nicht dem eigentlichen div-Object, so dass ich auch keinen Style direkt anwenden kann. Gibt es eine Möglichkeit ohne, dass das div eine id benötigt, das div-Objekt an die Javascript Funktion zu übergeben?

          
          
        <xsl:variable name="selItems" select="'UAE, AG'" />  
          
        <div class="mydiv" id="test">  
        <xsl:attribute name="style">  
        width:{  
        javascript: UpdStyle('test',  
        '<xsl:value-of select="$selItems" />')}px;  
        </xsl:attribute>  
          
        
        
          
        function UpdStyle(id, values)  
        {  
         var obj = document.getElementById(id);  
        //funktioniert  
        }  
          
        
        
      2. Hallo,

        <div class="mydiv" style="
                      width:{
                      javascript: UpdStyle(this,
                      'UAE, AG')}px;
                    ">

        
        >   
          
        Soll das Ergebnis in HTML so aussehen:  
          
        <div class="mydiv UAE AG" /> ???  
          
        Wenn ja, warum schreibst Du nicht die Klassenwerte direkt rein?  
          
        Viele Grüße  
        Siri