JS im return von ajax wird nicht ausgeführt.

Nord-Süd-Richtung

Erfahrenes Mitglied
Hi

altbekanntes Problem denke ich, habe mir auch das Workaround von Sven angeguckt, allerdings wird es immernoch nicht ausgeführt :\

HTML:
<html>
   <head>
      <title>Antike | WoA v0.3a</title>
      <link rel="stylesheet" type="text/css" href="scripte/designA.css">
   </head>
   <script type="text/javascript">
   String.prototype.eval_js=function(){
   alert("jep");
   d = document.createElement('div');
   d.innerHTML = this;
   c = '';
   for(s=0;s<d.getElementsByTagName('script').length;++s){
         c+=d.getElementsByTagName('script')[s].innerHTML;
   }
  eval(c);
  delete d;
  }
  </script>
<body onload="String(document.getElementsByTagName('body')[0].innerHTML).eval_js();">

Was muss ich anpassen?
edit: Das alert wird ausgeführt.
 
Ich hoffe mal ich verstehe das so richtig wie du meinst:
Hier wird im Erfolgsfalle der Scriptcode ausgegeben.
Javascript:
document.getElementById("content").innerHTML = req.responseText;
HTML:
 <div id="content"></div>
Sonst sind im Body divs, spans und ul/lis.
 
Also,

2 1/2 Monate später bin ich nochmal hierrauf zurückgekommen, und habe es sogar zum funktionieren gebracht :)
Nur ist das Problem, das sich danach eine leere Seite mit dem (ausgeführten) Js-Code öffnet, leider nicht im meinem Sinne. Wie muss ich den Code verändern, damit der JsCode "normal" ausgeführt wird?
 
Hi

stimmt, das habe ich wohl vergessen :-(
HTML:
<script type="text/javascript">
   String.prototype.eval_js=function(){
     d = document.createElement('div');
     d.innerHTML = this;
     c = '';
     for(s=0;s<d.getElementsByTagName('script').length;++s){
       c+=d.getElementsByTagName('script')[s].innerHTML;
     }
     eval(c);
     delete d;
   }
  </script>
<span onClick="Load(1);setTimeout('String(document.getElementsByTagName(\'body\')[0].innerHTML).eval_js()', 2500);">Anmelden</span>

Braucht ihr nochmehr?
 
Hi,

entschuldigung, ich bin krank, war heute nicht so ganz klar im Kopf. Der Fehler wurde (natürlich) durch ein document.write in dem uralten Quellcode verursacht, ich hab es durch normalen html-Code ersetzt.

Nochmal vielen Dank Sven für dein Workaround, das rettet mich ganz schön :)
 

Neue Beiträge

Zurück