DHTML Fenster mit onunload öffnen?
TinoH
- javascript
0 molily
Habe hier ein Quelltext für ein DHTML Fenster gefunden und würde es gerne so umgestalten, dass es nichtbeim Laden der HTML Seite sich öffnet, sondern erst beim verlassen derselben. Wollte es mit dem Befehl onunload machen, aber hab es leider nicht hin bekommen. Hier der Quelltext.
<html>
<head>
<script language="JavaScript1.2">
// Drop-in content box- By Dynamic Drive
// For full source code and more DHTML scripts, visit http://www.dynamicdrive.com
// This credit MUST stay intact for use
var ie=document.all
var dom=document.getElementById
var ns4=document.layers
var calunits=document.layers? "" : "px"
var bouncelimit=32 //(must be divisible by 8)
var direction="up"
function initbox(){
if (!dom&&!ie&&!ns4)
return
crossobj=(dom)?document.getElementById("dropin").style : ie? document.all.dropin : document.dropin
scroll_top=(ie)? truebody().scrollTop : window.pageYOffset
crossobj.top=scroll_top-250+calunits
crossobj.visibility=(dom||ie)? "visible" : "show"
dropstart=setInterval("dropin()",50)
}
function dropin(){
scroll_top=(ie)? truebody().scrollTop : window.pageYOffset
if (parseInt(crossobj.top)<100+scroll_top)
crossobj.top=parseInt(crossobj.top)+40+calunits
else{
clearInterval(dropstart)
bouncestart=setInterval("bouncein()",50)
}
}
function bouncein(){
crossobj.top=parseInt(crossobj.top)-bouncelimit+calunits
if (bouncelimit<0)
bouncelimit+=8
bouncelimit=bouncelimit*-1
if (bouncelimit==0){
clearInterval(bouncestart)
}
}
function dismissbox(){
if (window.bouncestart) clearInterval(bouncestart)
crossobj.visibility="hidden"
}
function truebody(){
return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
}
function get_cookie(Name) {
var search = Name + "="
var returnvalue = ""
if (document.cookie.length > 0) {
offset = document.cookie.indexOf(search)
if (offset != -1) {
offset += search.length
end = document.cookie.indexOf(";", offset)
if (end == -1)
end = document.cookie.length;
returnvalue=unescape(document.cookie.substring(offset, end))
}
}
return returnvalue;
}
function dropornot(){
if (get_cookie("droppedin")==""){
window.onload=initbox
document.cookie="droppedin=yes"
}
}
dropornot()
</script>
</head>
<body text="#000000" bgcolor="#FFFFFF" link="#FF0000" alink="#FF0000" vlink="#FF0000">
<div id="dropin" style="position:absolute;visibility:hidden;left:200px;top:200px;width:300px;height:300px;background-color:#F5F5F5">
<div align="right"><a href="#" onClick="dismissbox();return false">[Close Box] </a></div>
SPECIFY YOUR CONTENT HERE. IT COULD BE TEXT, IMAGES, OR RICH HTML
<a href="http://www.google.de" target=_blank>Link</a>
</div>
</body>
</html>
Hallo,
Ähm - »DHTML-Fenster« sind einfach Elemente im Dokument, die absolut positioniert werden und somit über dem Inhalt des restlichen Dokuments liegt.
Wenn eine Seite verlassen wird, z.B. indem der Benutzer auf einen Link klickt oder das Fenster/den Tab schließt, dann verschwindet das Dokument innerhalb von ein paar Millisekunden. Mit onunload kann man versuchen, dann noch ein JavaScript auszuführen. Unsinnig ist es aber, in dem Moment noch irgendwelche Änderungen am Dokument vornehmen zu wollen, etwa ein Element einzublenden. Wenn das überhaupt funktioniert, dann wird das Dokument mit dem eingeblendeten Popup-Element aber schon gar nicht mehr angezeigt.
Ich vermute mal, du willst ein Fenster einblenden, das das Verlassen der gegenwärtigen Seite verhindert bzw. aufschiebt. Das ist mit onunload nicht möglich, dazu gibt es unbeforeunload. Das funktioniert aber anders, nämlich man legt nur einen Text fest und der Browser stellt den dann in einem Dialogfenster dar. Der Benutzer wird darin gefragt, ob er die Seite verlassen will, kann das dann ggf. bestätigen oder abbrechen, um auf der Seite zu bleiben.
Mathias