• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

PopupBox Zeitgesteuert ausblenden

Geniemann

New member
Hallo!

Ich nutze die PopupBox hier:
JavaScripts // DHTML // PopUp Box bei jswelt.de - die java scripte-sammlung in deutsch - alles kostenlos!

Nun würde ich diese gerne zeitgesteuert ausblenden.

Dazu nutze ich einen Timer und wenn dieser abgelaufen ist rufe ich "hidebox();" auf.
Leider geht das nicht.
Ein "alert("Test")" an gleicher Stelle funktioniert, also der Timer tut es.

Die Fehlermeldung, die mir Firebug ausgibt lautet:

PHP:
crossobj is not defined
hidebox()
StartTheTimer()
crossobj.style.visibility="hidden"

Rufe ich die fkt falsch auf? Über onclick="hidebox();" geht es ohne Probleme.

Für Hilfe Dankbar ...
Andreas
 
Moin!

Das Script ist ziemlich schrottig. Den Kasten zeitgesteuert ausblenden kannst Du z. B. so:

setTimeout(function(){crossobj.style.visibility="hidden";},3000);

Ahoi - Pit
 
Moin!

Das Script ist ziemlich schrottig. Den Kasten zeitgesteuert ausblenden kannst Du z. B. so:

setTimeout(function(){crossobj.style.visibility="hidden";},3000);

Ahoi - Pit

Hallo!

Warum ist das Script ziemlich schrottig? Was ist denn daran so schlecht?
Die Zeile oben verstehe ich nicht so ganz. In dem Script gibt es ja für die verschiedenen Browser verschiedene Befehle zum ausblenden der Box. Oder verstehe ich da was nicht?
Warum soll das hier mit nur einem gehen?
Außerdem muss ich (da ich nun mal dieses Script verwende) nicht dennoch die fkt hidebox() aufrufen ?
Ich glaube ich blicke da gerade nicht durch ;-)

Danke & Grüße
 
Wenn Du tatsächlich ns4 berücksichtigen willst, muß das setTimeout zweimal in der hidebox eingebaut werden. Das halte ich jedoch für Quatsch.
 
Hallo!

Ok, also ich trage in dem Script obige Zeile (wo genau?) ein und dann habe ich mein Timeout und per klick schließen geht auch weiterhin.

Ich habe die Zeile eben einfach mal in Zeile 83 eingefügt (vor der "function hidebox()" Zeile) und bekam den gleichen Fehler wie bereits im ersten Beitrag oben beschrieben von firebug zurück.

Verstehe ich immer noch was nicht?


Grüße & och mal Danken
 
Also - :( - meine Schachtel verschwindet nicht!
Wiederhole mich: siehe oben.

Wie baue ich denn Pit's setTimeout in das Boxscript ein?

Code:
<script language="JavaScript1.2">
//Popup Box- By Jim Silver @ jimsilver47@yahoo.com

var ns4=document.layers
var ie4=document.all
var ns6=document.getElementById&&!document.all

//drag drop function for NS 4////
/////////////////////////////////

var dragswitch=0
var nsx
var nsy
var nstemp

function drag_dropns(name){
if (!ns4)
return
temp=eval(name)
temp.captureEvents(Event.MOUSEDOWN | Event.MOUSEUP)
temp.onmousedown=gons
temp.onmousemove=dragns
temp.onmouseup=stopns
}

function gons(e){
temp.captureEvents(Event.MOUSEMOVE)
nsx=e.x
nsy=e.y
}
function dragns(e){
if (dragswitch==1){
temp.moveBy(e.x-nsx,e.y-nsy)
return false
}
}

function stopns(){
temp.releaseEvents(Event.MOUSEMOVE)
}

//drag drop function for ie4+ and NS6////
/////////////////////////////////


function drag_drop(e){
if (ie4&&dragapproved){
crossobj.style.left=tempx+event.clientX-offsetx
crossobj.style.top=tempy+event.clientY-offsety
return false
}
else if (ns6&&dragapproved){
crossobj.style.left=tempx+e.clientX-offsetx
crossobj.style.top=tempy+e.clientY-offsety
return false
}
}

function initializedrag(e){
crossobj=ns6? document.getElementById("showimage") : document.all.showimage

var firedobj=ns6? e.target : event.srcElement
var topelement=ns6? "HTML" : "BODY"

while (firedobj.tagName!=topelement&&firedobj.id!="dragbar"){
firedobj=ns6? firedobj.parentNode : firedobj.parentElement
}

if (firedobj.id=="dragbar"){
offsetx=ie4? event.clientX : e.clientX
offsety=ie4? event.clientY : e.clientY

tempx=parseInt(crossobj.style.left)
tempy=parseInt(crossobj.style.top)

dragapproved=true
document.onmousemove=drag_drop
}
}
document.onmousedown=initializedrag
document.onmouseup=new Function("dragapproved=false")

////drag drop functions end here//////

function hidebox(){
if (ie4||ns6)
crossobj.style.visibility="hidden"
else if (ns4)
document.showimage.visibility="hide"
}

</script>

<div id="showimage" style="position:absolute;width:250px;left:250;top:250">

<table border="0" width="250" bgcolor="#000080" cellspacing="0" cellpadding="2">
  <tr>
    <td width="100%"><table border="0" width="100%" cellspacing="0" cellpadding="0"
    height="36">
      <tr>
        <td id="dragbar" style="cursor:hand" width="100%"><ilayer width="100%" onSelectStart="return false"><layer width="100%" onMouseover="dragswitch=1;if (ns4) drag_dropns(showimage)" onMouseout="dragswitch=0"><font face="Verdana"
        color="#FFFFFF"><strong><small>PopUp Box</small></strong></font></layer></ilayer></td>
        <td style="cursor:hand" valign="middle"><a href="#" onClick="hidebox();return false"><b><font color="#f5f5f5">x</font></b></a></td>
      </tr>
      <tr>
        <td width="100%" bgcolor="#FFFFFF" style="padding:4px" colspan="2">

<!-- Inhalt ---->

Das ist der geniale Inhalt der PopUp Box. Einfach dieses Teil mit
der Maus ziehen..

<!-- Inhalt----->

</td>
      </tr>
    </table>
    </td>
  </tr>
</table>
</div>

Gruß Anna
 
Zuletzt bearbeitet:
dieses Skript ist die Katastrofe und der HTML Code noch viel schlimmer, es funktioniert nicht mal. Warum sollte man sowas verwenden?
 
@ein schlauer: Dass das Script schrottig ist, hat Pit schon ausführlich erwähnt.
Moin!

Das Script ist ziemlich schrottig. Den Kasten zeitgesteuert ausblenden kannst Du z. B. so:

setTimeout(function(){crossobj.style.visibility="hidden";},3000);

Ahoi - Pit
Funktionieren tut's aber. Es stammt aus dem Archiv:
Nehme den Kasten auch gerne als zeitgemäßes Script gehäkelt. Ausblenden sollte es automatisch, wenn die Zeit (im Beispiel oben 3 Sekunen, wenn ich's richtig verstehe) abgelaufen ist. Also, ich würde dann ne längere Zeit bevorzugen und deshalb auch die vorhandenen Möglichkeiten, Verschieben und Schließen, drin haben wollen. Sprich: Das Script sollte von der Funktion her schon genauso sein, nur noch die zusätzliche automatische Ausblendfunktion bekommen.

Gruß Anna
 
Einfach ins Script packen und Zeit angleichen:
Code:
onload=function(){setTimeout(function(){document.getElementById('showimage').style.visibility='hidden';},3000);};
Ahoi - Pit
 
Vielen Dank :love:, läuft prächtig. Der Meenzer hat leicht reden, ich bin halt nicht so ein schlauer.

Gruß Anna
 
Falls du im quirksmodus arbeitest hast du Recht, ich halte meine Dokumente gewöhnlich im Standardmodus, dann hab ich Recht
Aiuto, help, hilfeeeeeee und jetzt? Die Box funktioniert auf der angeführten Seite nur, weil der doctype mitten im head steht. Na Klasse.

Gruß von einer nun ganz ratlosen Anna
 
Zuletzt bearbeitet:
Ich hab mal was gebaut Javascript Popup

Im Quelltext steht wie man das popup Objekt nutzt, es sind zweiu externe JS Dateien beteiligt.

ist nocht nicht perfekt, im Opera wird der Text markiert, warum weiß ich nicht.
 
@ein schlauer: Gefällt mir ausgesprochen gut, die Kastenseite. Dass Du Dir sowas einfach aus dem Ärmel schütteln kannst...
schoen.gif


Aber: Ich wollte halt gerne, dass sich - wie von Pit für das Anfangsscript gebastelt
Einfach ins Script packen und Zeit angleichen:
Code:
onload=function(){setTimeout(function(){document.getElementById('showimage').style.visibility='hidden';},3000);};
Ahoi - Pit
- nach einer Zeit x die Kästen wieder verabschieden. - Soweit der Plan. Im ersten Script gab es eine ElementID, auf die dann timeout zugreifen konnte. Nun dachte ich: Ich baue mir sowas in Deine Vorlage ein. :( Außer, dass zwischendurch gar nichts mehr funktionierte, bin ich hier nicht weitergekommen.

Gruß Anna
 
Angenommen, Du brauchst nur popup1:
PHP:
<script type="text/javascript">
var popup1;
window.onload = function()
{
    if(!document.createElement) return alert('Der Browser ist unfähig!');
    popup1 = new Popup(100, 500);
    popup1.titel('popup1: mit einem langen Titel ');
    popup1.text('text<br>text<br>text<br>text<br>text<br>text<br>');

    DEBUG = document.forms[0].debug;
    popup1.onDrag = function(e)
    {
       var p = this.getPos();
       DEBUG.value = p[0] + '/' + p[1];
    }
    
    var o = document.getElementById('test');
    x = new DragObject(o);
    
setTimeout(function(){popup1.close()},3000);
}
</script>
 
Naja, aus dem Ärmel geschüttelt ist das nicht, ich hab da einige ältere Ansätze noch rumfliegen die da eingeflossen sind.

du müsstest sowas einbauen:
PHP:
var popup1;
window.onload = function()
{
    popup1 = new Popup(100, 500);
    ....
    window.setTimeout( function() { popup1.close(); }, 3000);
}
Ich hab's in dem online Beispiel eingebaut (dem ich gestern abend und heute noch einige Verbesserungen spendiert habe)
 
Zurück
Oben