Deus Figendi: aktuelles DIV ansprechen in dem Javascript geschrieben steht?

Beitrag lesen

Naja Kai,
wenn das äußere DIV einen Namen hat bzw. irgendwie ansprechbar ist, dann er ja auch normale DOM-Methoden (childNodes[1]; getElementsByTagName) anwenden.

Es ging ja darum, dass das JS wissen müsste wo es steht und das weiß es in der Regel eben nicht.

Wenn du dem script-Element eine ID (oder sonst was was man ansprechen kann) verpasst, dann kannst du auch auf dessen Eltern zugreifen, wenn das eine Option für dich ist. (Laut selfHTML hat das script-Element kein ID-Attribut, aber ich habe das schonmal benutzt und es funktionierte. Ich bin gerade zu fault um zu prüfen ob dem wirklich so ist.)

Ansonsten hätte ich noch zwei etwas abenteuerliche Ideen, von denen ich auch nicht weiß ob sie funktionieren:
Erste Idee: Erschaffe mit .write() ein neues Element, welches du anschließend über DOM-Methoden greifen kannst, von dort aus auf das Elternelement zugreifst und anschließend ggf. das geschriebene wieder löscht. Kann auch sein, dass man da mit time-outs arbeiten muss, damit das Script-Element einmal "abgelaufen" ist (und das neue Element geschrieben) bevor du auf das Elternelement zugreifst.
Aber ich vermute mal dass sowas hier funktionier:

<element onclick="foobar();" />  
<div>  
 Blindtext  
 <script>  
  document.write('<span id="baz"></span>');  
  function foobar () {  
   document.getElementById('baz').parentNode.style.backgroundColor="#ACE";  
  }  
 <script>  
</div>

Zweite Abenteuerliche Idee: Finde das Script-Element anhand seines Inhaltes.
Schreib "MagicNumbers" in das Script-Element, mit dem du es identifizieren kannst. Dann durchsuche alle document.getElementsByTagName("script")[].firstChild.data.match(/magic4/) nach der entsprechenden Zahl.
Auch da weiß ich nicht ob's funktioniert. Es ist wie gesagt eine abenteuerliche Idee :)

--
sh:( fo:| ch:? rl:( br:& n4:& ie:{ mo:} va:) de:µ_de:] zu:) fl:( ss:| ls:[ js:(