• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Die Bildungsoffensive hier im Forum geht weiter! Jetzt sollen Kreativität und technische Möglichkeiten einen neue Dimension erreichen. Das Thema in diesem Monat lautet - Verkehrte Welt - Hier geht es lang --> 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.
 
Wenn noch Informationen fehlen, einfach kurz nachfragen.
 
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?
 
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.