php.de

Zurück   php.de > Webentwicklung > HTML, Usability und Barrierefreiheit

HTML, Usability und Barrierefreiheit Themen rund um Textauszeichnung, Formatierung, Barrierefreiheit und Usability.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 26.07.2010, 03:17  
Neuer Benutzer
 
Registriert seit: 26.07.2010
Beiträge: 2
PHP-Kenntnisse:
Anfänger
nickBee befindet sich auf einem aufstrebenden Ast
Standard Ajax - Dynamic Content mit JS in DIV laden

Sorry, ausversehen ins falsche Unterforum gepostet, bitte nach "JavaScript, Ajax und mehr" verschieben!

hi,

ich bin absolut am ende und benötige dringend eure hilfe!
Ich möchte bzw. habe eine website erstellt auf der per Ajax dynamisch Content in ein Div geladen werden soll.
Nun habe ich aber das Problem das sich in der test.html welche in das Div geladen werden soll ein Javascript befindet welches beim aufrufen aber nicht ausgeführt wird.
Rufe ich die test.html allein auf funktioniert alles perfekt. Rufe ich die test.html über das Ajax-script im Div auf zeigt er mir zwar den Content aber führt das darin enthaltene Javascript nicht aus.
Dazu muss noch gesagt sein das das Javascript selbst nicht extern sondern direkt im code der test.html liegt, sprich
Code:
<script type="text/javascript">
...
...
..
.
</script>
Ausserdam soll auchnoch die lytebox als externes JS per
Code:
<script type="text/javascript" language="javascript" src="js/lytebox.js"></script>
<link rel="stylesheet" href="css/lytebox.css" type="text/css" media="screen" />
ausgeführt werden, könnte ich aber auch in die test.html reinpacken.


Verwendet habe ich ein Ajax-script von http://www.dynamicdrive.com (direktlink auf das script) welches ich im head der index.html aufrufe um per Link die test.html in den Div zu laden

Code:
/***********************************************
* Dynamic Ajax Content- © Dynamic Drive DHTML code library (www.dynamicdrive.com)
* This notice MUST stay intact for legal use
* Visit Dynamic Drive at http://www.dynamicdrive.com/ for full source code
***********************************************/

var bustcachevar=1 //bust potential caching of external pages after initial request? (1=yes, 0=no)
var loadedobjects=""
var rootdomain="http://"+window.location.hostname
var bustcacheparameter=""

function ajaxpage(url, containerid){
var page_request = false
if (window.XMLHttpRequest) // if Mozilla, Safari etc
page_request = new XMLHttpRequest()
else if (window.ActiveXObject){ // if IE
try {
page_request = new ActiveXObject("Msxml2.XMLHTTP")
} 
catch (e){
try{
page_request = new ActiveXObject("Microsoft.XMLHTTP")
}
catch (e){}
}
}
else
return false
page_request.onreadystatechange=function(){
loadpage(page_request, containerid)
}
if (bustcachevar) //if bust caching of external page
bustcacheparameter=(url.indexOf("?")!=-1)? "&"+new Date().getTime() : "?"+new Date().getTime()
page_request.open('GET', url+bustcacheparameter, true)
page_request.send(null)
}

function loadpage(page_request, containerid){
if (page_request.readyState == 4 && (page_request.status==200 || window.location.href.indexOf("http")==-1))
document.getElementById(containerid).innerHTML=page_request.responseText
}

function loadobjs(){
if (!document.getElementById)
return
for (i=0; i<arguments.length; i++){
var file=arguments[i]
var fileref=""
if (loadedobjects.indexOf(file)==-1){ //Check to see if this object has not already been added to page before proceeding
if (file.indexOf(".js")!=-1){ //If object is a js file
fileref=document.createElement('script')
fileref.setAttribute("type","text/javascript");
fileref.setAttribute("src", file);
}
else if (file.indexOf(".css")!=-1){ //If object is a css file
fileref=document.createElement("link")
fileref.setAttribute("rel", "stylesheet");
fileref.setAttribute("type", "text/css");
fileref.setAttribute("href", file);
}
}
if (fileref!=""){
document.getElementsByTagName("head").item(0).appendChild(fileref)
loadedobjects+=file+" " //Remember this object as being already added to page
}
}
}
Div indem das Content aufgerufen wird:
Code:
<div id="loadContent"></div>
Aufgerufen wird die Funktion per Link:
Code:
<a href="javascript:ajaxpage('test.html', 'loadContent');">Link</a>
nach langer Googel-suche bin ich dann doch bei eval gelandet, ich verstehe aber nicht wie ich dies in das script selbst einbauen soll.
Ich hoffe jemand kann mir bei meinem Problem helfen, oder gar ein anderes Script empfehlen. Das ganze ist absolutes Neuland für mich.
Sorry für das kilometerlange post, aber ich bin gerade ein bisschen frustriert

Schonmal danke für eure Antworten!
PS: Ich möchte nicht mit iFrame arbeiten da mir sonst der Seitenaufbau zulange dauert, und das ganze ja auch total out ist.

Greetz
nickBee

Geändert von nickBee (26.07.2010 um 03:36 Uhr).
nickBee ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 26.07.2010, 08:48  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 34.256
PHP-Kenntnisse:
Fortgeschritten
nikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz sein
Standard

Zitat:
ich bin absolut am ende und benötige dringend eure hilfe!
Solchen Müll kannst Du Dir direkt klemmen.

Und via Ajax ein HTML aufrufen? Das klingt ziemlich unsinnig.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 26.07.2010, 10:02  
Erfahrener Benutzer
 
Registriert seit: 25.09.2009
Beiträge: 2.044
PHP-Kenntnisse:
Fortgeschritten
BlackScorp wird schon bald berühmt werdenBlackScorp wird schon bald berühmt werden
Standard

benutze jQuery und alles wird schön schau hier

Unbenanntes Dokument musst dir mal im FireBug den Quellcode anschauen, bestimmt hilft es dir weiter
__________________
Mein kleines Projekt
-Cruel Online-
5 von 3 Leuten können kein Bruchrechnen
BlackScorp ist offline   Mit Zitat antworten
Alt 26.07.2010, 12:05  
Neuer Benutzer
 
Registriert seit: 26.07.2010
Beiträge: 2
PHP-Kenntnisse:
Anfänger
nickBee befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von nikosch Beitrag anzeigen
Solchen Müll kannst Du Dir direkt klemmen.

Und via Ajax ein HTML aufrufen? Das klingt ziemlich unsinnig.
Danke für deine äußerst freundliche Antwort *ironie*, bin nunmal nicht so ein überpro wie du, allerdings hilft mir deine Antwort überhaupt nicht weiter!

@BlackScorp
Vielen Dank, werde mir das ganze mal anschaun.
nickBee ist offline   Mit Zitat antworten
Alt 29.07.2010, 21:50  
fab
Erfahrener Benutzer
 
Benutzerbild von fab
 
Registriert seit: 28.07.2010
Beiträge: 1.726
PHP-Kenntnisse:
Fortgeschritten
fab ist einfach richtig nettfab ist einfach richtig nettfab ist einfach richtig nettfab ist einfach richtig nett
Standard

Zitat:
Zitat von nickBee Beitrag anzeigen
Rufe ich die test.html über das Ajax-script im Div auf zeigt er mir zwar den Content aber führt das darin enthaltene Javascript nicht aus.
Richtig, nachträglich ins DOM eingefügte <script> Elemente werden nicht ausgeführt. Ergo funktioniert das was du vorhast nicht, egal was für ein Framework du fürs AJA"X" benutzt.

Eine allgemeingültige Lösung gibt es da nicht, hängt ganz davon ab, was in deiner test.html steht und was für Skripte da ausgeführt werden sollen
fab ist gerade online   Mit Zitat antworten
Alt 30.07.2010, 11:50  
Moderator
 
Benutzerbild von agrajag
 
Registriert seit: 02.10.2006
Beiträge: 3.820
PHP-Kenntnisse:
Fortgeschritten
agrajag wird schon bald berühmt werdenagrajag wird schon bald berühmt werden
Standard

Zitat:
Zitat von fab Beitrag anzeigen
Richtig, nachträglich ins DOM eingefügte <script> Elemente werden nicht ausgeführt. Ergo funktioniert das was du vorhast nicht, egal was für ein Framework du fürs AJA"X" benutzt.
Es gibt aufjedenfall Frameworks die dir das ohne weiteres erlauben. Bei Prototype gibt es beispielsweise die Option evalScripts: true .... Ich vermute mal bei jQuery und Co gibt es ähnliches...
__________________
Today you...Tomorrow me.
agrajag ist offline   Mit Zitat antworten
Alt 30.07.2010, 12:17  
fab
Erfahrener Benutzer
 
Benutzerbild von fab
 
Registriert seit: 28.07.2010
Beiträge: 1.726
PHP-Kenntnisse:
Fortgeschritten
fab ist einfach richtig nettfab ist einfach richtig nettfab ist einfach richtig nettfab ist einfach richtig nett
Standard

Okay, das war mir nicht bekannt, wieder was gelernt
fab ist gerade online   Mit Zitat antworten
Alt 30.07.2010, 14:39  
Erfahrener Benutzer
 
Registriert seit: 02.09.2009
Beiträge: 921
PHP-Kenntnisse:
Fortgeschritten
mquadrat befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von nikosch Beitrag anzeigen
Solchen Müll kannst Du Dir direkt klemmen.

Und via Ajax ein HTML aufrufen? Das klingt ziemlich unsinnig.
Ein bisschen netter wäre sicher auch möglich gewesen. Ob als Aufrufziel des AJAX Calls nun ein PHP, ein HTML oder ein was auch immer genutzt wird ist für das geschilderte Problem ja unerheblich.

Zum Thema: Sofern Lytebox (kenn ich persönlich jetzt nicht) bereits auf einem der bekannten JS Frameworks basiert (z.B. jQuery, Prototype, Mootools) solltest du dieses Framework auch für den AJAX Call verwenden. Bei Moools lässt sich beispielsweise auch per Option festlegen, ob enthaltenes JS ausgeführt werden soll.
__________________
Wir suchen PHP / Delphi und .NET Entwickler im Raum Darmstadt / Rhein-Main. Infos via E-Mail mueller@new-frontiers.de
mquadrat ist offline   Mit Zitat antworten
Alt 30.07.2010, 14:46  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 34.256
PHP-Kenntnisse:
Fortgeschritten
nikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz sein
Standard

Zitat:
Ob als Aufrufziel des AJAX Calls nun ein PHP, ein HTML oder ein was auch immer genutzt wird ist für das geschilderte Problem ja unerheblich.
Wieso ist das unerheblich. HTML kann immer nur vollständige HTML-Dokumente liefern, während ich mit PHP JSON, JS-Fragemente oder plain text liefern kann.
Zitat:
Rufe ich die test.html allein auf funktioniert alles perfekt. Rufe ich die test.html über das Ajax-script im Div auf zeigt er mir zwar den Content aber führt das darin enthaltene Javascript nicht aus.
klingt für mich absolut so, als könnte das der Grund des Problems sein.

Zitat:
Ein bisschen netter wäre sicher auch möglich gewesen.
Genau. Und weniger Schmacht und ‘ich sterbe gleich, wenn mir nicht jemand mein Problem löst’ ist auch immer möglich. Bei solchen bescheuerten „Disclaimern“ hat man schon im Vporfeld keine Lust mehr zu antworten..
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

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

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

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] Seite mit Ajax in div laden und JS ausführen themonk JavaScript, Ajax und mehr 8 07.07.2010 18:08
Blätterfunktion / Menubar Content änderung Maxwill PHP Tipps 2010 2 27.04.2010 12:48
[Erledigt] Ajax, jQuery - CKEDITOR Fehler bei Instanzierung jGeee JavaScript, Ajax und mehr 3 26.03.2010 09:09
Ajax Content Parsen mittels PHP omex PHP Tipps 2010 4 24.03.2010 22:07
Ajax, Variablenweitergabe saduccm JavaScript, Ajax und mehr 1 08.03.2010 19:50
Ajax Anwendung, reines Ajax oder Ajax und Html jackie1983 JavaScript, Ajax und mehr 5 09.02.2010 16:50
Wie lade ich ein Javascript nach einer AJAX Abfrage neu? da.eXecutoR JavaScript, Ajax und mehr 3 21.09.2009 11:15
[Erledigt] PHP in Console lithium Server, Hosting und Workstations 16 25.06.2009 00:52
[Erledigt] Datei via Ajax in zwei Boxen laden Lenni.B JavaScript, Ajax und mehr 4 25.02.2009 11:28
1111: AJAX meets PHP (indirectly) Nikolaus 2.0 Adventskalender 2008 5 15.12.2008 11:00
Probleme mit Sonderzeichen bei Ajax (prototype)... go1denboy JavaScript, Ajax und mehr 1 31.08.2008 18:44
Fileupload via AJAX GSJLink HTML, Usability und Barrierefreiheit 11 07.09.2007 15:44
mit ajax captcha neu laden und generieren jjackisc PHP-Fortgeschrittene 10 10.08.2007 15:41
update auf php 5.0.4 robo47 Server, Hosting und Workstations 6 10.04.2005 19:00
Externen Content laden PHP Tipps 2004 4 13.08.2004 10:52

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
ajax dynamic content, ajax content laden, dynamic ajax content, ajax div, ajax div laden, http://www.php.de/html-usability-und-barrierefreiheit/70048-ajax-dynamic-content-mit-js-div-laden.html, div dynamisch nachladen, ajax html in div laden, php in div laden, div dynamisch link laden, ajax php in div laden, javascript dynamic content, javascript div laden, dynamic content ajax, javascript php in div laden, ajax dynamischer content, ajax content dynamisch laden, div ajax, js dynamic content, ajax div nachladen

Alle Zeitangaben in WEZ +1. Es ist jetzt 22:23 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum