Zurück   Flashforum > Alternative Technologien > JavaScript & jQuery

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 10-12-2009, 15:47   #1 (permalink)
Neuer User
 
Registriert seit: Jul 2003
Beiträge: 1.197
AJAX: Javascript im aktualisierten <div> ausführen

PHP-Code:
<div id="inhalt">
<?include("neu.php")?>
</div>
Wenn neu.php ein JavaScript enthält, wird es in diesem Code ja ganz normal ausgeführt, wenn das ganze Dokument geladen wird. Wenn man aber mit AJAX neu.php aktualisiert, wird das JavaScript in neu.php nicht ausgeführt.
Gibt es einen möglichst allgemeingültigen Weg, solche JavaScripts doch zur Ausführung zu bringen?


EDIT: mit allgemeingültig meinte ich genauer gesagt, daß man das JavaScript in neu.php ganz normal schreibt. Außerhalb dieser Datei ist mir egal, was notwendig ist.
__________________
EDV = Ende Der Vernunft

Geändert von hmpf (10-12-2009 um 15:55 Uhr)
hmpf ist offline   Mit Zitat antworten
Alt 10-12-2009, 16:01   #2 (permalink)
Inventar
 
Benutzerbild von Nightflyer
 
Registriert seit: Jul 2002
Beiträge: 6.882
Tipp: Tu es nicht. Mach alles JS in die Hauptseite welche die Unterseiten lädt.

Und wenn du's doch nicht lassen kannst: ajile - Advanced JavaScript Importing & Loading Extension Aber da musst du dann schon alleine durch
__________________
(\__/)
(='.'=)
(")_(")
Nightflyer ist offline   Mit Zitat antworten
Alt 10-12-2009, 16:22   #3 (permalink)
Neuer User
 
Registriert seit: Sep 2009
Beiträge: 216
Hey,
hier: das sollte dir evtl helfen können.
HTML-Code:
function evalScript(scripts)
{	try
	{	if(scripts != '')	
		{	var script = "";
			/*
			 * <script[^>]*> sucht alle <script ...> Tags
			 * ([\s\S]*?) liefert alles was zwichen den Tags steht zurück
			 * <\/script> sucht alle </script> Tags
			 */ 
			scripts = scripts.replace(/<script[^>]*>([\s\S]*?)<\/script>/gi, function(){
				//Dies ist wie eine Art Schleife je nachdem wie oft Script Tags mit Code vorkommen daher wird es in der Variable "script" abgelegt
				if (scripts !== null) 
					script += arguments[1] + '\n'; //Packt den Code an der Variable 
 	        		return '';
	            	});
	            	//Hier wird der String der nur noch Code enthalten sollte ausgeführt
			if(script) (window.execScript) ? window.execScript(script) : window.setTimeout(script, 0);
		}
		return false;
	}
	catch(e)
	{	alert(e)
	}
}
Einfach den ResponsContenten dieser Funktion übergeben.
Beachte dabei, das nur Script welches sich zwischen den script Tags befindet ausgeführt wird. Externe Script Files werden nicht angelegt die sollte man auch in der Hauptseite laden.

Mit freundlichen Grüßen

Cas
CaselPasel ist offline   Mit Zitat antworten
Alt 10-12-2009, 16:27   #4 (permalink)
Neuer User
 
Registriert seit: Jul 2003
Beiträge: 1.197
@CaselPasel: danke, das sieht schon ganz gut aus.
__________________
EDV = Ende Der Vernunft
hmpf ist offline   Mit Zitat antworten
Alt 15-12-2009, 06:52   #5 (permalink)
nobody is perfect
 
Benutzerbild von richtsteiger
 
Registriert seit: Jul 2004
Ort: munich
Beiträge: 876
Mal 'ne dumme Frage: Warum packst du die Scripts nicht einfach in ein
Code:
window.onload = function() {
  // hier dein Script rein
}
Denn wenn ich per AJAX Inhalte nachlade, in denen Scripte ausgeführt werden
sollen, dann pack ich die immer in ein
Code:
jQuery(document).ready(function($) {
  ...
});
und dann werden diese auch immer korrekt ausgeführt. Genauer gesagt erst
dann, wenn der nachgeladene Content auch komplett geladen wurde. Das
Hauptdokument hat das jQuery-Framework und die ready-Funktion macht ja im
Grunde nix anderes als auf das entsprechende Event zu reagieren.
__________________
XING
richtsteiger ist offline   Mit Zitat antworten
Alt 15-12-2009, 07:05   #6 (permalink)
Neuer User
 
Registriert seit: Sep 2009
Beiträge: 216
Hey,
das liegt an jQuery!!!
Genau so wie jedes andere Framework haben die so eine funktion wie ich sie gepostet habe.
Du kannst auch das ready wegnehmen und es funktioniert bei jQuery.

EDIT:
Und das document oder window ist eh schon längst fertig geladen auch wenn du mit AJAX was aufrufst. Es ist schon fertig!

Mit freundlichen Grüßen

Cas

Geändert von CaselPasel (15-12-2009 um 07:07 Uhr)
CaselPasel ist offline   Mit Zitat antworten
Alt 15-12-2009, 07:17   #7 (permalink)
nobody is perfect
 
Benutzerbild von richtsteiger
 
Registriert seit: Jul 2004
Ort: munich
Beiträge: 876
Zitat:
Zitat von CaselPasel Beitrag anzeigen
Hey,
das liegt an jQuery!!!
Genau so wie jedes andere Framework haben die so eine funktion wie ich sie gepostet habe.
Richtig, und in der steht folgendes:
Zitat:
// A fallback to window.onload, that will always work
jQuery.event.add( window, "load", jQuery.ready );
was mir sagt, dass window.onload immer funktioniert.
Zitat:
Zitat von CaselPasel Beitrag anzeigen
EDIT:
Und das document oder window ist eh schon längst fertig geladen auch wenn du mit AJAX was aufrufst. Es ist schon fertig!
Meines Erachtens falsch, da sich das document bzw. window auf das per AJAX
geladene Dokument bezieht und nicht auf das Hauptdokument.
__________________
XING
richtsteiger ist offline   Mit Zitat antworten
Alt 15-12-2009, 09:11   #8 (permalink)
Neuer User
 
Registriert seit: Sep 2009
Beiträge: 216
Zitat:

Zitat:
Zitat von CaselPasel Beitrag anzeigen
EDIT:
Und das document oder window ist eh schon längst fertig geladen auch wenn du mit AJAX was aufrufst. Es ist schon fertig!
Meines Erachtens falsch, da sich das document bzw. window auf das per AJAX
geladene Dokument bezieht und nicht auf das Hauptdokument.
__________________
Was jQuery macht ist jQuery überlassen!
window.onload wird nur ausgeführt wenn die Seite fertig geladen ist.
Und dafür ist ajax ja auch da damit die Seite nicht mehr lädt.
Oder siehst du im Browser ein LadeSymbol oder Balken??

Mit freundlichen Grüßen

Cas
CaselPasel ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
JavaScript per AJAX nachladen möglich? QULIXX JavaScript & jQuery 14 11-11-2008 19:53
getURL mit Javascript (Ajax) CSA Flash Einsteiger 1 20-05-2008 14:26
Tipp: HTML, CSS, JavaScript und AJAX in AIR wolter Adobe AIR 1 09-10-2007 17:28
Javascript/Ajax für Eclipse Aerks Web-Editoren 0 08-09-2006 06:39
Kein Caching von aktualisierten Dateien??? kow Flash 4 und Flash 5 2 22-08-2005 23:30


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:58 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele