[JavaScript] document.write => Script

Dieses Thema im Forum "Webentwicklung" wurde erstellt von 6000Loader, 24. April 2009 .

Schlagworte:
  1. 24. April 2009
    document.write => Script

    Moin,

    nachdem ich es jetzt sehr lange versucht habe selbst eine funktionierende Lösung zu finden, gebe ich nun auf!

    Es geht um folgendes:
    Der User hat die Möglichkeit Javascript auf meinem Layer zu benutzen.
    (Das Javascript wird vorher geprüft!)

    bsp.:
    Code:
    <script type="text/javascript">alert('Hello world!');</script>

    Mein Script wird auf eine einfache weise in eine Seite eingebunden:
    Code:
    <script type="text/javascript src="http://domain.de/layer.js"></script>
    Code:
    document.write('<div id="layer">');
    ==SCRIPT DES USERS==
    document.write('</div>');
    

    Das problem ist nun, das ich es einfach nicht hin bekomme, das Script des Users, welches aus der DB kommt, so in das Script einzubinden damit es rein Geschrieben und ausgeführt wird! ;(

    Ich hab erst vor kurzem mit Javascript angefangen und kann zwar schon eine menge, aber bei dem Problem habe ich einfach ein Brett vor dem Kopf!

    Bitte helft mir!
    DANKE!
     
  2. 24. April 2009
    AW: document.write => Script

    entweder via eval, oder via:
    Code:
    var script = document.createElement('script');
    script.setAttribute('type', 'text/javascript');
    script.appendChild(document.createTextNode('==script-des-benutzers=='));
    
    //script einfügen
    function insert_script() {
     document.body.appendChild(script);
    }
    
    if(document.body) {
     insert_script();
    } elseif(window.attachEvent) {
     window.attachEvent('onload', function() { insert_script(); }, false);
    } else {
     window.addEventListener('load', function() { insert_script(); }, false);
    }
    es sei denn, dass script steht schon so da (zb via php ausgegeben)

    ps: document.write gibts in xhtml nicht mehr, würde da an deiner stelle vorsichtig sein!
     
  3. 24. April 2009
    AW: document.write => Script

    Erstmal: Vielen Dank!

    Solange es sich nur um Javascript im Script-Tag handel funktioniert eval sehr gut!
    Leider hab ich mich wohl etwas doof ausgedrückt, denn der User hat nicht nur die möglichkeit Javascript zu benutzen, sondern HTML-Code.

    Das heißt er kann auch folgendes eingeben:
    Code:
    <script type="text/javascript">alert('Hello world!');</script>
    <noscript>Hallo Welt</noscript>
    Hast du dafür auch eine lösung?

    P.s.: Sorry, noch ein fehler meinerseits, das Script wird so eingebunden:
    (Eine Manipulation durch PHP ist also auch möglich)
    Code:
    <script type="text/javascript src="http://domain.de/layer.php"></script>
     
  4. 25. April 2009
    AW: document.write => Script

    dann erstell doch einen iframe mit dem script des users (is eh sicherer, dann kann der user nix im dokument des original-fensters ändern).
     
  5. 25. April 2009
    AW: document.write => Script

    Ich lass jetzt per document.write den HTML-Code des Users in ein iFrame schreiben:
    Code:
    userscriptiframe.document.open();
    userscriptiframe.document.write('<html><head><style type="text/css">body{margin:0;padding:0;overflow:hidden;}</style></head><body>'+layerbannercode+'</body></html>');
    userscriptiframe.document.close();
    
    Alle Browser zeigen es richtig, ohne Abstand Oben und Links an ... ... außer Firefox 2

    Hast du/jemand eine Ahnung warum?
     
  6. 25. April 2009
    AW: document.write => Script

    ich hab aus spaß mal selber was erstellt: http://murdoc.eu/javascripts/layer/ (source)
    bei mir klappt das ganze mit den abständen
     
  7. 25. April 2009
    Zuletzt von einem Moderator bearbeitet: 14. April 2017
    AW: document.write => Script

    Dein Script ist mal wieder nicht von schlechten Eltern

    Allerdings geht es Mir um den Rot Markierten Abstand:
    Bild

    Firefox2 Ignoriert einfach die CSS Angaben die ich in den iFrame schreibe :angry:
     
  8. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.