[Javascript] Self close

quicksilver

Lt. Junior Grade
Registriert
Jan. 2004
Beiträge
363
Ich habe ein problem mit javascript. Ich habe das unten gespostete Script und ich möchte das die funktion da raus kommt das die rechte maustaste gesperrt wird. Weil es soll nur die Funktion enthalten bleiben das wenn jemand das Fenster verlässt das dann der timer losläuft und am ende das Fenster schliesst. Ich hatte da schonmal das oncontextmenu rausgenommen .. aber dann hat er das fenster immer geschlossen auch wenn ich mit der maus drauf geblieben bin.

Danke

PHP:
<SCRIPT language=JavaScript>
<!--
setTimeout("self.close();", 15000);
var message="";
function clickIE() {if (document.all) {(message);return false;}}
function clickNS(e) {if 
(document.layers||(document.getElementById&&!document.all)) {
if (e.which==2||e.which==3) {(message);return false;}}}
if (document.layers) 
{document.captureEvents(Event.MOUSEDOWN);document.onmousedown=clickNS;}
else{document.onmouseup=clickNS;document.oncontextmenu=clickIE;}
document.oncontextmenu=new Function("return false")
--> 
</SCRIPT>
 
Also wenn ich das richtig verstanden habe (und da bin ich mir nicht so sicher) möchtest du folgendes machen:
  • rechte Maustaste sperren
    Warum willst du das machen? Zum einen kann man das recht einfach umgehen und zum anderen sollte eine Website IMHO nicht das Verhalten des Browsers ändern.
  • Das Fenster soll sich nach 15 Sekunden automatisch schließen wenn man es mit der Maus verlassen hat
    Dass das Fenster bei dir immer geschlossen wird liegt daran, dass setTimeout("self.close();", 15000); bereits beim Laden der Seite aufgerufen wird. Stattdessen solltest du den Timer erst starten wenn du nicht mehr über dem Fenster bist, also zum Beispiel bei einem onmouseout-Event. Das funktioniert aber nur dann gut wenn deine Seite nur aus einem Element (z.B. 1 Bild) besteht.
    Übrigens kannst du bei einigen Browsern nur die Seiten mit javascript schließen die du auch mit javascript geöffnet hast.
 
Raechaer : Nein ich möchte halt das das rausgenommen wird. Das mit der Maustaste:)
und Das geht eigentlich so Raechaer.. nur ich möchte halt das mit der maustaste raushaben. Ansonsten funktioniert das so eigentlich.
 
Ok, jetzt hab ich dich verstanden (jaja, ich bin heute schwer von Begriff :))

Blöde Frage, aber bist du dir sicher, dass das script so wir du's gepostet hast funktioniert? Bei mir tut's das nämlich nicht (weder IE noch Firefox), und das wundert mich auch nicht, denn durch das setTimeout("self.close();", 15000); wird das Fenster 15 Sekunden nachdem die Seite geladen wurde geschlossen, die anderen Zeilen zur Deaktivierung der rechten Maustaste haben darauf eigentlich keinen Einfluss.

Kannst du mal einen Link zur kompletten Seite posten?
 
Hmm, bei mir wird das Fenster immer nach 15 Sekunden geschlossen, egal was ich mit der Maus mache...
 
hmmm komisch dann hab ichs wohl verpeilt :/ könntest du das mir so umbasteln das es so geht ? mit dem mouse event ?
 
Du kannst z.B. folgendes machen:
HTML:
 <body onmouseout='javascript:setTimeout("self.close();",15000);'>
Dann wird der Timeout gestartet wenn du mit der Maus das Body-Element verlässt oder (und das ist das problematische) über ein Element im Body gehst. Das wird so also nur bei einer sehr einfachen Seite funktionieren...
Natürlich kannst du statt body auch ein anderes Element nehmen.
 
hm er schliesst dat wohl trotzdem wenn ich mit der maus drüber bleibe hmm
*update*

ne geht :> man muss halt nur "schnell" genug drüber sein wenn es aufpop sonst zählt er sofort runter :)

Danke dir schöön :)
 
Zuletzt bearbeitet:
Zurück
Oben