Div NICHT neuladen bei request

Splitterflug

Grünschnabel
Hey ho! ich steck mal wieder in einer Sinneskriese.

ich hab überall gesucht finde aber immer nur das gegenteil von dem was ich eigentlich will. Allerdings habe ich
gelesen das ich für mein problem AJAX brauch aber keiner hat einen link parat wo ich mir das mal ansehen könnte,
deshalb liebe Community, würde ich gerne die Profis hier befragen:

ich habe im Header meiner Seite einen Flash-Player eingebunden der Musik parat stellt. nun möchte ich bei einem Request das neuladen dieses einen Div's vermeiden. ich hatte im Vorfeld das Problem umgangen, in dem ich über die Navigation und etwas JS
immer nur die Contet-Div's neu geladen habe , da stellte sich nun aber das Problem dass sich die einzelnen Seiten nicht bookmarken ließen da sich ja die Adresse der Seite nicht mitändert, also mit pushstate rum gespielt und begeistert gewesen bis ich dann mal mit IE auf meine Seite kam und: Kaboom! nichts geht mehr -.-'.

also bin ich nun an dem Punkt, wo ich jede mühe auf mich nehme um diesen einen Div vom Reload auszuschließen. Popup und Frame kommen nicht in frage. ich brauche:

a: entweder ein Tutorial das mir verrät wie ich dieses eine div vom Request ausschließe oder
b: ein Tutorial das mir verrät wie ich meine Navigation den Content so laden lasse, dass die Adresszeile, zwecks bookmark
Crossbrowser freundlich geändert wird.

falls es einen post zu dem Thema gibt, bitte verschieben. ich Google und suche und frage mich nun schon seit tagen durch.

Hilfe? irgend wer? :-S
 
Ich habe dich jetzt so verstanden:
Deine Seiten werden momenten weder über (i)Frames noch per AJAX geladen, sondern bei jedem Aufruf komplett neu aufgebaut. Du hast aber einen DIV-Layer in jeder deiner Unterseiten integriert, den du gern beim Aufruf einer anderen Unterseite vom Neuladen ausschließen möchtest.
Nun meine Frage an dich: Wozu? Hat das was mit deiner per Flash abgespielten Musik zu tun?

Mir würden zur Lösung deines Problems jetzt drei Sachen einfallen, nämlich
erstens und zweitens die beiden oben erwähnten Methoden per (i)Frame (*würg*) oder AJAX.
Und drittens wäre: Lass die Musik weg, sowas regt die meisten Besucher nur auf. Als ich auf der Suche einer Pension für meinen Sommerurlaub war, bin ich sogar auf eine Seite gestoßen, deren im Hintergrund abgespielte Musik sich nicht deaktivieren ließ. Das dient der Kundenakquisition nicht wirklich.

Zur Lösung mit AJAX: Um das Ganze Crossbrowser-freundlich zu machen, solltest du auf jeden Fall ein Framwork wie jQuery verwenden. Desweiteren kannst du zur Unterscheidung der einzelnen Contents beim Aufruf mit Hashtags (also zu deutsch Raute) arbeiten, sprich Unterseiten so ansprechen:
Code:
index.html#impressum
Der dabei interessante Bereich in der Adresszeile lässt sich auch von Javascript auslesen, sodass du dadurch deinen entsprechenden Content per AJAX nachladen kannst und trotzdem funktionierende Links hast.

Hoffe, das hat dir etwas geholfen.
 
MH das mit den hashtags les ich öfter, weiss aber nicht so recht was ich damit anfangen soll.
Der Player ist übrigens nicht irgendwo in der Unterseite sondern direkt im kopfbanner der ja generell nie geändert wird. Ich suche einfach nur eine Möglichkeit wie ich praktisch die Unterseiten laden kann ohne den Banner bzw den player nachzuladen. Das dann aber eben crossbrowser freundlich. Der player läuft übrigens nicht automatisch. Ich habe schon an den Nerv Faktor von ungefragtem gedudel gedacht. Aber ich glaube an das mit den haschtags häng ich mich mal ran

Edit:

Okay. Ich mach nun schon seit stunden mit hashtag rum und nichts funktioniert. eigentlich ist es weniger meine art, aber hat irgendjemand einen codeschnipsel den ich mir ausbauen kann. also quasi ein stück js das dem hashtag die info entnimmt und damit in #content die entsprechende seite läd?

wie gesagt sollte es crossbrowser freundlich sein. ich bin jetzt kurz davor den s**** player zu entfernen und das ganze wieder nur per php zu realisieren. -.-'
 
Zuletzt bearbeitet:
Hi,

deine Logik bezüglich des Seitenaufbaus erschließt sich mir grundsätzlich nicht so genau. Eigentlich sollte es doch (in den allermeisten Fällen) so sein, dass lediglich ein bestimmer DIV-Content-Bereich aktualisiert werden soll, zwecks Performance und gutem Stil.

Mittels AJAX und JQuery kannst du relativ einfach einen oder wie in deinem Fall auch mehrere DIV-Bereiche aktualisieren und beispielsweise deinen Header davon ausnehmen.

Eine Aktualisierung in JQuery würde ganz vereinfacht so aussehen:
HTML:
        <script type="text/javascript" src="js/jquery-1.9.1.js"></script>
        <script type="text/javascript">
        //<![CDATA[
        $(document).ready(function(){                
            // AJAX-Call
            $('.menu a').click(function() {
                var href = $(this).attr('href');
                $('#content').load(href);                            
                return false;
            });          
        });
        //]]>
        </script>

Dü lädst entsprechend deines ausgewählten Links (hier ".menu a") das gewünschte Verhalten über ein click-Event. Danach holst du dir das href-Attribut (Link zur aufrufenden Seite) und lädst damit die Seite beispielsweise in den DIV-Tag #content. Das macht meiner Meinung nach mehr Sinn als ständig alles andere zu refreshen aber vielleicht hab ich auch einfach nicht richtig dein Problem verstanden?

Grüße Cappaja
 
Mein problem ist simpel mit dem content muss sich die Adresse ändern. Pushstate oder replace fällt weg weil nicht crossbrowserfreundlich, hashtag würde wohl funktionieren da hab ich aber keinen plan wie die Funktion heißt bzw angewendet wird da ich in Javascript ne Niete bin. im Grunde müsste ich nur den content eines divs per JS ändern und eben dadurch dann auch den hashtag. Aber ich bin da langsam mit meinem latein am Ende, deshalb dachte ich wäre es evtl einfacher ei Fach den div der nicht geladen werden soll vom request Auszuschließen.

Aber villeicht versuch ich auch den gaul von hinten aufzuzäumen. geh ich mal andersrum ans thema ... hat einer nen plan wie ich per click auf einen link den contet meines divs wechsle(das weiss ich im übrigen!) bzw wie ich in dieses script dann noch die funktion für den hastag reinbekomme und vorallem ohne irgendwelche fehlermeldungen beim ie zu bekommen
oder:
gibts eine möglichkeit ein js script im IE zu verstecken also dass das script praktisch nur in den "guten" browsern ausgeführt wird?
 
Zuletzt bearbeitet:
Schau mal hier.
Ordne deinen Navigations-Links eine spezielle CSS-Klasse zu, die du dann per jQuery durchläufst und den Elementen jeweils ein Event dranhängst, dass beim Klicken ausgeführt wird. Darin Änderst du dann einerseits den aktuellen Hashtag der Adresszeile und liest sie dann wieder aus. Dann lädst du den entsprechenden Content in deinem DIV nach und fertig ist die Geschichte.

HTML:
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title>jQuery und Hashtags</title>
		<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
		<script type="text/javascript">
		var hashtag = function(value)  {
			if(value)  {
				window.location.hash=value;
				return true;
			}

			if(window.location.hash) {
				//set the value as a variable, and remove the #
				var hash_value = window.location.hash.replace('#', '');
				return hash_value;
			}
			
			return false;
		};
		
		$(document).ready(function()  {
			var fbb = $('#fbb');
			
			fbb.html(hashtag());
			
			$('a.navbar').bind('mouseup', function()  {
				location.href = $(this).attr('href');
				fbb.html(hashtag());
			});
		});
		</script>
	</head>
	
	<body>
		<h2>Hashtags testen</h2>
		<p>
			<ul>
				<li>
					<a class="navbar" href="#content1">content1</a>
				</li>
				<li>
					<a class="navbar" href="#content2">content2</a>
				</li>
				<li>
					<a class="navbar" href="#content3">content3</a>
				</li>
			</ul>
		</p>
		<p>
			<div id="fbb" style="border:1px solid grey; backgroundcolor: #AFAFAF;"></div>
		</p>
	</body>
</html>
 
Ich verbeuge mich vor eurer Weisheit Meister! ehrlich jetzt!
.... Danach suche ich nun schon ungelogen seigut 4 wochen und nirgends was gefunden. ich wusste dass es für jemanden der sich damit auskennt einfach sein muss. Und wieder danke ich euch hier im forum für die tolle hilfe.
und nochmals untertänige verzeihung für mein unwissen^^... ich bin mit javascript einfach auf kriegsfuß...
 
Zurück