mmofacts.com

[Javascript] confirm ähnliche Funktion selber erstellen?

gepostet vor 17 Jahre von n26
Folgendes Script:
klick

function click() {

document.getElementById('test').innerHTML = confirm( 'blub' );
}
Sobald ich auf "klick" klicke kommt das Confirm-Fenster mit den Antwortmöglichkeiten "OK" und "Abbrechen". Jenachdem was ich auswähle erscheint dann im span-Element "true" oder "false".
Nun mein Anliegen. Ich möchte eine eigene Funktion mit ähnlicher Arbeitsweise wie die der confirm-Funktion.
Heißt, dass beim klicken ein div-Frame erscheinen soll mit von mir bestimmten Inhalt und je nach dem was man dort auswählt soll dann im span-Tag von mir gewählter Inhalt erscheinen.
Woran es da aktuell scheitert ist, dass ich nicht weiß, wie ich Javascript sage: er soll mit der click() Funktion erst weitermachen, wenn die von mir geschriebene Funktion etwas zurückgibt (wenn in dem div-Frame etwas ausgewählt wurde).
Hat jemand einen Ansatz für mich, mit dem das Realisierbar ist?
Danke im voraus!
n26
gepostet vor 17 Jahre von raufaser
Eine Funktion könnte z.B. so aussehen:

test
#confirm {
display:none;
position:absolute;
top:100px;
left:100px;
width:300px;
height:150px;
border:2px solid #999;
}
function my_confirm( c_layer, question, on_okay, on_break )
{
c_obj = document.getElementById( c_layer );
if( c_obj )
{
c_obj.innerHTML = question;
c_obj.innerHTML += '
';
c_obj.innerHTML += 'Okay ';
c_obj.innerHTML += 'Abbrechen';
display_layer( c_obj );
}
return true;
}
function hide_layer( l_obj )
{
l_obj.style.display = 'none';
return true;
}
function display_layer( l_obj )
{
l_obj.style.display = 'block';
return true;
}

Test

Musst halt einfach nur die Funktion aufrufen und die JavaScript Anweisungen, mitgeben, was passieren soll, wenn OK bzw. Abbrechen gedrückt wird. Wird dann per Eval ausgeführt.
(ist nur n ganz einfaches Beispiel... bitte nicht wegen code qualität meckern...)
Gruß,
Marc
gepostet vor 17 Jahre von raufaser
Ach jetzt habe ich deinen Post erst verstanden: Also so wie du es vorhast, könnte es nur funktionieren, wenn du die Original confirm Funktion mit einem eigenen Prototypen überschreibst.
Ich persönlich würd's in dem Stil machen, wie ich's oben skizziert habe, das Ergebnis ist ja im Endeffekt gleich.
Gruß,
Marc
gepostet vor 17 Jahre von Störti
Theoretisch könntest du das eval() aber auch weglassen, der Code im onmousedown wird ja eh schon aus einer Zeichenkette heraus interpretiert.
gepostet vor 17 Jahre von raufaser
Stimmt... da hasse auch wieder wahr.
gepostet vor 17 Jahre von n26
Original von raufaser
Ach jetzt habe ich deinen Post erst verstanden: Also so wie du es vorhast, könnte es nur funktionieren, wenn du die Original confirm Funktion mit einem eigenen Prototypen überschreibst.

Okay das überschreiben mit einem Prototypen ist mir nicht geläufig. Habe auch inzw. einen anderen Weg gefwählt.
Danke trotzdem für die Hilfe!

Auf diese Diskussion antworten