kostenloser Webspace werbefrei: lima-city


Per js Text mit HTML-Tags in div laden?

lima-cityForumDie eigene HomepageHTML, CSS & Javascript

  1. Autor dieses Themas

    m******s

    Also, ich möchte folgendes erreichen:
    Ich brauche eine js-Funktion, die die, sobald sie aufgerufen wird, eine Datei vom Server holt und in ein div-Element lädt, sodass sie dort angezeigt wird. Bisher habe ich das hier versucht:

    function navi1()
    {
    	var main = document.getElementById(\"main\");
    	main.innerHTML = \"<script language=\\\"javascript\\\" src=\\\"content1.js\\\"></script>\";
    	printcontent();
    }


    und in der content1.js steht:

    function printcontent()
    {
    	var content = \"Erster Test<br>Erster Test<br>Erster Test<br>Erster Test<br>Erster Test<br>Erster Test<br>Erster Test<br>Erster Test<br>\";
    	document.write(content);
    }


    Also
    - Die erste Javascript-Funktion wird definitiv aufgerufen.
    - In der Zeile, wo printcontent() aufgerufen wird, bricht das Script ab (mit nem alert getestet, setz ich es davor, kommt ne Box, setz ich es danch, kommt keine).
    - Die Funktion printcontent() wird definitiv NICHT aufgerufen, ich hab n alert in die erste Zeile geklatscht und nichts passiert.
    - Gehe ich auf \"Quelltext anzeigen\", wird immer noch der alte Quelltext gezeigt.
    - Im Firebug-Plugin wird an der richtigen Stelle das richtige Script angezeigt.
    Der Text aus dem div main verschwindet auch, also wird das wohl richtig eingebunden, wollte nur präzise shcildern, was so alles passiert.

    Also, hat vielleicht jemand eine Idee, wieso das nicht geht? Und wie ich das evtl. anders realisieren könnte?
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. d***********a

    document.write kann nur beim laden des Dokuments verwendet werden, nachträglich geht nicht.
    Wieso das hier:

    var main = document.getElementById(\"main\");
        main.innerHTML = \"<script language=\\\"javascript\\\" src=\\\"content1.js\\\"></script>\";


    Wieso nicht gleich:

    document.getElementById(\"main\").innerHTML = \"blablabla\";


    Und du musst dem div-Element die id zuweisen, also so in der Art :

    <div id=\"main\"></div>


    Im übrigen sei hier angemerkt, dass mir der IE den damaligen versuch, ein JS-Script per innerHTML in die Seite einzubinden um die Ohren gehaut hat ...

    Grüße dapizzafressa


    Beitrag geändert: 24.6.2008 20:35:36 von dapizzafressa
  4. t*****b

    Wieso realisierst du das so umständlich und nicht so:

    main.innerHTML = \"Erster Test<br>Erster Test<br>Erster Test<br>Erster Test<br>Erster Test<br>Erster Test<br>Erster Test<br>Erster Test<br>\";


    Das Problem könnte daran liegen, dass die Funktion printcontent() nicht im Header deklariert ist und somit nicht zur Verfügung steht, wenn du diese im Body nachlädst. Wäre jetzt spontan meine Vermutung.

    Willst du Content dynamisch nachladen, empfehle ich dir Ajax.
    Außerdem wäre es gut, wenn du dich mit DOM2 auseinander setzt.
    Dann löst sich dein Vorhaben - welches du momentan sehr umständlich realisieren willst - von ganz alleine.
  5. Autor dieses Themas

    m******s


    document.write kann nur beim laden des Dokuments verwendet werden, nachträglich geht nicht.


    Mist.

    Wieso das hier:
    ...

    Wieso nicht gleich:
    ...

    Weil zweiteres erfordern würde, den gesamten Inhalt der Page (will das als Navi benutzen) auf einen Schlag zu laden, obwohl viele Seiten möglicherweise gar nicht angeschuaut werden.

    Und du musst dem div-Element die id zuweisen


    Joa, das ist ja scho klar ;)


    Wieso realisierst du das so umständlich und nicht so:


    s.o.

    Das Problem könnte daran liegen, dass die Funktion printcontent() nicht im Header deklariert ist und somit nicht zur Verfügung steht, wenn du diese im Body nachlädst. Wäre jetzt spontan meine Vermutung.

    Hm, werd mal ausprobieren, ob das geht.... wäre eigentlich ganz schön, wenn das funkctionieren würde...

    Willst du Content dynamisch nachladen, empfehle ich dir Ajax.
    Außerdem wäre es gut, wenn du dich mit DOM2 auseinander setzt.
    Dann löst sich dein Vorhaben - welches du momentan sehr umständlich realisieren willst - von ganz alleine.


    +seufZz+ Schon wieder neue Technologien und Standards lernen.... =( mal schauen, wenns nicht anders geht, schau ich mir das mal an...


    Beitrag geändert: 24.6.2008 20:44:31 von merovius
  6. Autor dieses Themas

    m******s

    Also, hab jetzt folgenden Ansatz probiert, den er aber auch nicht mag:

    1.) Hab im Head ein Script mit src=content1.js angelegt.
    2.) Hab in die Navi-Funktion geschrieben:
    var scriptplace = document.getElementById(\'content\');
    	scriptplace.src = \"content2.js\";
    	printcontent();

    3.) In content1.js steht:
    function printcontent()
    {
    	var main = document.getElementById(\"main\");
    	main.innerHTML = \"ERSTER TEST<br>ERSTER TEST<br>ERSTER TEST<br>ERSTER TEST<br>ERSTER TEST<br>ERSTER TEST<br>ERSTER TEST<br>ERSTER TEST<br>ERSTER TEST<br>ERSTER TEST<br>ERSTER TEST<br>ERSTER TEST\";
    }

    4.) In content2.js steht noch einmal das gleiche nur mit \"ZWEITER TEST\".

    Naja, auf jeden Fall funktioniert es offensichtlich nicht, die Quelle vom js zu verändern und er bindet dass dann ein =(
    Naja, was soll man machen, dann schau ich mir mal Ajax an... =(
  7. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!