Zum Inhalt springen

javascriptaufruf/definition in String für innerHTML


Empfohlene Beiträge

abend,

ich verwende ein Framework in dem die Seite in Views unterteilt ist. jede view ist z.b. eine Liste, ein Formular etz.

nun habe ich den fall, das z.B. eine View aus einer suchmaske besteht, die wiederum einen Ajax-Befehl verwendet um in einem Div-Layer das zur View gehört die Liste der ergebnisse zu zeigen.

<form>

</form>

<div>

ergebnisse

</div>

je nach aufruf muss die Suche aber automatisch durchgeführt werden.

in dem fall wird die View als normaler a href-Link aufgerufen, per GET kommt ein Parameter, wenn dieser vorhanden ist, wird noch ein <script></script mit in die Ausgabe eingefügt, welches die Suche direkt anstößt.

in dem fall sieht das dann so aus:

<script>

function dosearch()

{

....

}

</script>

<form>

</form>

<div>

ergebnisse

</div>

<!-- GET GEFUNDEN, suche initiieren -->

<script>

dosearch(1);

</script>

und nun das Problem.

In einem fall, wird die ganze View als Ajax-Rückgabewert in die seite eingefügt.

{vorhandene Seite mit div-container} <ajax< {view mit formular}

Da aber die definition der funktion "dosearch" und der Aufruf Teil Des View-Inhalts ist, der ja in die bestehende seite eingefügt wird (xajaxresponse->addAssign("divcontainerid","innerHTML",$content) wird weder die definition geparsed, noch ein Aufruf des Javascripts gemacht.

andererseits will ich jetzt nicht die ganze view 2x oder so schreiben...

Ich suche derzeit nach einem Konzept, um Die Informationen in die Ausgabe einzufügen, unabhängig davon ob Ajax oder nicht.

so eine art stack

$response->addstatichtml();

$response->addJavascriptcall

$response->addJavascriptdefinition

....

in der Hoffnung das ich das Problem ausreichend erklärt habe, hat jemand von euch das Problem schonmal gehabt, eine idee oder Weisheit die mir helfen könnte ?

Link zu diesem Kommentar
Auf anderen Seiten teilen

also nochmal zusammengefasst,

ich lade eine Seite die javascript-Definitionen und aufrufe enthält per AJAX nach.

Der Inhalt wird über element.innerHTML in einen Container eingefügt.

Das Problem ist, das scheinbar diese neuen javascript-definitionen nicht geparsed werden, so das der Browser sie nicht kennt. genausowenig werden javascript-aufrufe ausgeführt - letzteres kann ich ja evtl. noch verstehen. Aber ich kann nicht alle definitionen auslagern, das sind teilweise kleine funktionen die nur an dieser einen stelle benötigt werden. :(

Link zu diesem Kommentar
Auf anderen Seiten teilen

Update:

ich habe jetzt eine Klasse dazwischen geschaltet, die abhängig davon, ob es per "normal"-Verbindung oder per Ajax aufgerufen wird, den Javascript-Code an XAJAX übergibt oder direkt in HTML ausgibt.

in Firefox, kein Problem.

IE 6/7: nada, der Javascript-Code kommt im eval() der XAJAX-Javascriptklasse an, alert(...) hat es gezeigt, ist danach aber nicht verfügbar um aufgerufen zu werden. *grmbl*

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...