[JS] inner.HTML Problem mit Ausgabe

CrazySash

Well-known member
ID: 93631
L
20 April 2006
2.273
103
Ich habe folgende kleine Funktion
Code:
function boxadd(id,text){
 if(document.layers) { // Netscape 4.x
  document.layers[id].document.open();
  document.layers[id].document.write(text);
  document.layers[id].document.close();
 }else{
  document.getElementById(id).innerHTML=text;
 }
}

Damit möchte in den Inhalt don Div's ändern. Beispiel:
Code:
<div id="test">Vor änderung</div>

So geändert wird das dann durch

Code:
<script type="text/javascript">boxadd('test', 'Neuer Text')</script>

Soweit klappt das auch.

Mein Problem ist nur, dass ich gerne

<script language="JavaScript" type="text/javascript">document.write('<iframe src="https://banners.webmasterplan.com/view.asp?site=XXX&ref=XXX&type=text&tnb=32&showjs=0&template=XXX&titlecolor=CC6600&bgcolor=FFF4DA&refurl='+escape(document.location.href)+'" width="468" height="60" marginheight="0" marginwidth="0" frameborder="0" scrolling="no"></iframe>')</script>
ausgeben lassen möchte. Nur jedesmal kommt es zu einem Error und es passiert nix.

Hoffe das Problem ist verständlich. Stehe nur imo komplett aufm Schlauch...
 
Wenn du den Afili.net Banner in die Funktion kopierst, kann das auch nicht laufen - die singlequotes (') überschneiden sich. Du musst die sq innerhalb der Funktion, also die vom Banner escapen, dann müsste es laufen.
 
nüx. es kommt keine fehlermeldung, es wird aber auch nichts angezeigt.

So wie ich mich aber gerade schlau gelesen habe, scheint <script> im innerhtml gar nicht zu funzen :(
 
stimmt das script wird nichta aufgerufen, weil die seite schon geladen hat.
Das kann man aber mit eine Javascriptfunktion realisieren:
HTML:
function launchJavascript(responseText) {
  // RegExp from prototype.sonio.net
  var ScriptFragment = '(?:<script.*?>)((\n|.)*?)(?:</script>)';
           
  var match    = new RegExp(ScriptFragment, 'img');
  var scripts  = responseText.match(match);

    if(scripts) {
        var js = '';
        for(var s = 0; s < scripts.length; s++) {
            var match = new RegExp(ScriptFragment, 'im');
            js += scripts[s].match(match)[1];
        }
        eval(js);
    }
}

https://rabaix.net/index.php/en/articles/issues_developing_ajax_libraries << hier mit gesamtanleitung