• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Na, habt Ihr genügend in Stoffen geschwelgt? Dann könntet Ihr Euch jetzt die zahlreichen Einsendungen dieses Monats anschauen und entscheiden, welches Foto davon Euch am Besten gefällt. Hier geht es lang zur Abstimmung --> Klick

Aufruf einer Funktion innerhalb eines über Java erzeugten HTML-Codes

Thoraka

Erdapfel
Registriert
18.01.11
Beiträge
3
Hallo,

Ich habe ein kleines Problem, bei dem ich etwas Unterstützung brauche.

Hintergrund: Wir haben eine Datenbank umgestellt, die vorher frei zugänglich war, so dass jetzt der User sich anmelden muss, um dort Informationen zu sehen. Aus der Seite herraus erfolgt eine Anmeldung automatisch über ein verstecktes Formular.

Jetzt haben wir eine Programm erstellt, mit welchem die Daten aus der Datenbank weiter verarbeitet werden können. Jedoch muss in diesem Aufruf noch die Übergabe der Anmeldedaten erfolgen.

Code:
testLibrary.openURL2 = function( url )
{

    var hiddenFormDOMObject = testLibrary.getHiddenFormDOMObject();

    if ( hiddenFormDOMObject === false )
    {
        return;
    }
    var username = hiddenFormDOMObject.frmUsername.value,
        institut = hiddenFormDOMObject.frmInstitut.value,
        doctype  = 'RS-KP',
        zielUrl  = testLibrary.getTargetURL() + '/test/createDocument.do',
        testwin   = window.open( '', 'test', 'width=800, height=600, toolbar=yes, location=yes, status=yes, menubar=yes, scrollbars=auto, resizable=yes' );
    testwin.document.open();
    testwin.document.write( '<form action="' + zielUrl + '" method="post" name="test_Form" id="test_Form" target="_blank">' );
    testwin.document.write( '<input type="submit" value="Buttontext">' );
    testwin.document.write( '<input name="cookie" type="hidden" value="Dummy">' );
    testwin.document.write( '<input name="doctype" type="hidden" value="' + doctype + '">' );
    testwin.document.write( '<input name="frmCookie" type="hidden" value="Dummy">' );
    testwin.document.write( '<input name="frmUrlAlt" type="hidden" value="' + url + '">' );
    testwin.document.write( '<input name="frmUrl" type="hidden" value="' + url + '">' );
    testwin.document.write( '<input name="frmUsername" type="hidden" value="' + username + '">' );
    testwin.document.write( '<input name="frmInstitut" type="hidden" value="' + institut + '">' );
    testwin.document.write( '<input name="frmDoctype" type="hidden" value="' + doctype + '">' );
    testwin.document.write( '</form>' );
    testwin.document.write( '<iframe src="[COLOR=red]' + URL + '[/COLOR]" id="testFrame" name="testFrame" width="100%" height="90%" scrolling="yes">' );
    testwin.document.write( '</body></html>' );
    testwin.document.close();

    testwin.focus();
}

In dem Bereich ' + URL + ' muss anstelle der URL eine FUnktion eingebunden werden, welche den Cookie mit übergibt und die Seite aufruft.

Code:
testLibrary.openURLOrLogin = function( targetURL  )
{
    targetURL = targetURL || false;
    var hiddenFormDOMObject = testLibrary.getHiddenFormDOMObject();

    hiddenFormDOMObject.frmCookie.value=document.cookie;
    hiddenFormDOMObject.frmUrl.value=location.href;
    hiddenFormDOMObject.cookie.value=document.cookie;
    hiddenFormDOMObject.url.value=location.href;
    hiddenFormDOMObject.action=targetURL;
    hiddenFormDOMObject.submit();
}

Hat einer eine Idee, oder einen Vorschlag, wie ich die untere Funktion in der oberen an der Stelle mit einbinden kann?

Vielen Dank für die Unterstützung.
 

Thoraka

Erdapfel
Registriert
18.01.11
Beiträge
3
Wenn noch Informationen fehlen, einfach kurz nachfragen.
 

gKar

Maunzenapfel
Registriert
25.06.08
Beiträge
5.362
Die Frage ergibt keinen Sinn. Abgesehen davon, dass das kein Java ist, sondern JavaScript.
Aber im src-Attribut eines IFrames *muss* eine URL stehen. Es gibt keinen Sinn, in einem Ausdruck eine Void-Funktion aufzurufen, die also keine URL zurückgibt.
Wenn die erste Funktion dazu da ist, die HTML-Response auf einen ersten Request zu berechnen, was soll es dann, noch vor Darstellung dieser Antwortseite alles zu verwerfen und einen neuen Request auszulösen?
 

Thoraka

Erdapfel
Registriert
18.01.11
Beiträge
3
Ja, es ist javascript, hab ich mich oben vertippt.

Die Funktion ergibt in sofern sinn, dass hier 2 verschiedene Server angesprochen werden. Beide brauchen eine Authentifizierung mit jeweis unterschiedlichen Daten. Die Erste Anwendung, für welche die Button sind ist eine Anwendung, welche aus dem 2. Teil eine Art Kopie macht.

Die 2. Teil ist eine Datenbank, die eine Authentifizierung über einen Übergabewert macht, woraus dann ein Cookie erzeugt wird.

Bin gerade am Testen, ob im 2. Teil die Benötigten Daten dynamisch über die URL einfach mit übergeben werden kann, und die Datenbank diese aus der URL übernimmt. Ist nicht ganz so einfach das Ganze.