ilch Forum » Allgemein » HTML, PHP, SQL,... » HTML in ein DIV Laden (ajax/xml)

Geschlossen
  1. #1
    User Pic
    CascadingStyleS gelöschter User
    So hi erstmal,

    ...ich bin zwar nen CSS Experte aber lächeln aber auch ich kann vieles andere nicht.

    Mein HTML: (die Texte habe ich rausgenommen)
    <div id="pos">
    
    	<div><a href="" id="header"></a></div>
    	
    <div id="nav">	
    	<div id="nav1">
    	 <a href="index.html">Home</a> |
    	 <a href="Javascript:refresh_div('#.html');">#</a> |
       <a href="Javascript:refresh_div('#.html');">#</a> |
    	 <a href="Javascript:refresh_div('#.html');">#</a> |
    	 <a href="Javascript:refresh_div('#.html');">#</a> |
       <a href="Javascript:refresh_div('#.html');">#</a>    
      </div>
    	<div id="nav2">
       <a href="" target="">#</a> |
    	 <a href="" target="">#</a> |
    	 <a href="" target="">#</a> |
    	 <a href="" target="">#</a> |
    	 <a href="" target=""></a>
      </div>
    </div>
    
    	<div id="content"></div>
    	
    	<div id="footer">
        <p><a href="" target="">#</a>,  
          <a href="" target="">#</a> 
        </p>
        <p>
          <a href="" target="">#</a> 
          | <a href="" target="">#</a> 
          | <a href="" target="">#</a> 
          | <a href="" target="">#</a> 
          | <a href="" target="">#</p>   
      </div>
    	
    </div>
    </center>


    Mein Script:
    <script type="text/javascript">
        var ajax = null;
    if (window.XMLHttpRequest)
          ajax = new XMLHttpRequest();
    else if (window.ActiveXObject)
          ajax = new ActiveXObject("Microsoft.XMLHTTP");
     
    function refresh_div(content)
    {
          ajax.open("GET", content, true);
          ajax.onreadystatechange = function()
          {
                if(ajax.readyState == 4)
                      document.getElementById('content').innerHTML = ajax.responseText;
          }
          ajax.send(null);
    }
    
    </script>


    Mit dem o.g. Code´s lade ich eine Neue Seite in ein <div></div>...
    ...soweit funktioniert alles wunderbar.

    Auf der Seite was ich aber reinlade, befindet sich wieder ein Script im <head>script</head>
    Das dumme ist die Seite wird ab dem <body> geladen also kommt mein <head>+script garnicht mit :'(.

    Etwas gegoogelt und aha es soll mit Hilfe von XML?! und Knotenpunkten möglich sein Zielgerichtet Bereiche anzusprechen.

    Ich kann leider keinen klaren gedanken fassen wie ich das nun angehen soll... wäre sehr dankbar wenn Ihr mir helfen könntet.:S
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    Ich empfehle dir ein Framework zu verwenden, wenn du weiter keine Ahnung hast, bei ilch ist z.B. xajax dabei, damit kann auch Scripte ausführen usw.

    Wenn du mir genauer sagst, was du genau machen willst, kann ich dir ggf. auch ein Code dafür geben, ist auch die Frage wo du es haben willst, also nur bei News meinetwegen oder immer.
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    CascadingStyleS gelöschter User
    Jo, es sieht so aus undzwar...als Beispiel.

    hab Seite1 mit dem o.g. Script (im head Bereich), wenn ich nun auf ein Link klicke in meiner Navigation dann lade ich mir die Seite2 (xxx.html auch mit einem Script im head Bereich) in meinen Container (div) ohne die ganze Seite (die Navigation) neuladen zu müssen.

    Nun ist das dumme daran, das sich die Seite2 ab dem <body> reinlädt und den <head> ganz weg lässt und dadurch das Script von Seite2 wegfällt.

    Und das soll halt mit Knotenpunkten und XML machbar sein.

    Mit externen .js Dateien klappts auch nicht schon versucht.:S

    Ich hab nicht mal die Ahnung wie ich aus meiner HTML Datei nen XML mach <.< schnüff.


    Zuletzt modifiziert von CascadingStyleS am 23.07.2008 - 08:44:52
    0 Mitglieder finden den Beitrag gut.
  4. #4
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    Ja das hab ich schon verstanden gehabt, also es geht auch nicht um ilch, wenn ich es richtig verstehe.
    Wie schon gesagt, so einfach wird das nicht zu machen sein, du musst die Scripts extra schicken und auswerten also ausführen etc. und sowas kannst du wie gesagt mit einem Framework recht einfach machen, Bsp. xajax (php) www.xajaxproject.org/

    Oder z.B. mootools, wenn du kein php verwendest, da hab ich gerade gesehen, dass bei docs.mootools.net/Request/Request.HTML eine Option evalScripts vorhanden ist, das scheint ja das zu sein, was du brauchst.
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  5. #5
    User Pic
    CascadingStyleS gelöschter User
    So, ^^ ich bin wieder mal drann.

    Ich habe etwas gegoogelt und habe das hier gefunden.
    (das Element "evalScript" hab ich auch im Prototype wieder gefunden)
    em ja hier der Code:
    function evalScript(scripts)
    {	try
    	{	if(scripts != '')	
    		{	var script = "";
    			scripts = scripts.replace(/<script[^>]*>([\s\S]*?)<\/script>/gi, function(){
    	       	                         if (scripts !== null) script += arguments[1] + '\n';
     	        	                        return '';});
    			if(script) (window.execScript) ? window.execScript(script) : window.setTimeout(script, 0);
    		}
    		return false;
    	}
    	catch(e)
    	{	alert(e)
    	}
    }


    Ich habs versucht auf der Seite1 den Code mit in den JS einzubauen aber irgendwie funzt es nicht <.< .

    Das evalScript soll ja eigentlich das JS Code was auf der Seite2 im <head> steht nachladen? richtig?.

    Ich weiss vlt. ist es zuviel verlangt, aber ich muss erlich sagen das mir das Wissen fehlt um jetzt weiter zukommen, kann mir nicht wer das zusammen setzen?

    Wenn ja poste ich gerne mein Material hier rein.
    0 Mitglieder finden den Beitrag gut.
  6. #6
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    Ich bin eher ein JS Laie, ich weiß nicht, ob die Sachen aus dem head nachgeladen werden, es ist im Grunde falsch in ein div eine komplette HTML Seite nachzuladen, das solltest du halt anders lösen, JS kann ja außerdem auch in den body, vielleicht reicht das ja schon?
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  7. #7
    User Pic
    CascadingStyleS gelöschter User
    JS im <body> schon versucht... die einzige Möglichkeit die mir noch einfällt ist das ich .js Dateien erstellen könnte die dann separat eingebunden werden.

    vlt. muss ich dem <div> wie bei dem <a href="....> im o.g. HTML-Code sowas wie Javascript:... geben ^^ echt KP... und langsam auch KB mehr xD.

    Weisste nur wegen der aufklappbaren Navigation <.< muss ich diese sch***** ertragen.

    Wenn das bloß mit CSS-CascadingStyleSheet machbar wäre.

    Trotzdem danke das du dir Zeit genommen für mich. zunge
    0 Mitglieder finden den Beitrag gut.
  8. #8
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    Ist es doch (mit hover), und ansonsten kann man das sicher mit einer globalen JS Funktion lösen, wo man nicht bei jeder Seite eine eigene braucht.
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  9. #9
    User Pic
    lookout Mitglied
    Registriert seit
    31.10.2007
    Beiträge
    152
    Beitragswertungen
    0 Beitragspunkte
    ZitatZitat geschrieben von CascadingStyleS

    So, ^^ ich bin wieder mal drann.

    Ich habe etwas gegoogelt und habe das hier gefunden.
    (das Element "evalScript" hab ich auch im Prototype wieder gefunden)
    em ja hier der Code:
    function evalScript(scripts)
    {	try
    	{	if(scripts != '')	
    		{	var script = "";
    			scripts = scripts.replace(/<script[^>]*>([sS]*?)</script>/gi, function(){
    	       	                         if (scripts !== null) script += arguments[1] + 'n';
     	        	                        return '';});
    			if(script) (window.execScript) ? window.execScript(script) : window.setTimeout(script, 0);
    		}
    		return false;
    	}
    	catch(e)
    	{	alert(e)
    	}
    }




    Wenn du das einfach so einbindest, ist das einfach eine Funktion die erst aufgerufen werden muss. Hast du das getan?
    Zur Zeit geheimes Projekt am Laufen!
    Der Web Informant
    0 Mitglieder finden den Beitrag gut.
  10. #10
    User Pic
    CascadingStyleS gelöschter User
    Das ist nun auch egal, hehe.

    Den wiedermal siegt CSS.

    Ich habe die VertikaleNavigation die nach unten aufklappt mit CascadingStyleSheet gelöst.

    DA DA DA DA DAAAAAA ICH LIEBE ES. ^^ tortzdem danke.

    Auf Wunsch poste ich gerne den Code (aber in einem passenderen Thread), denke mal die Designer könnten viel nettes mit anfangen.


    Zuletzt modifiziert von CascadingStyleS am 23.07.2008 - 14:08:11
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu HTML, PHP, SQL,...

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten