Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

javascriptaufruf/definition in String für innerHTML

Empfohlene Antworten

Veröffentlicht

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 ?

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. :(

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*

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.