Popup um Hintergrund öffnen

Hallo Forum,

ich habe hier ein Popup, dass sich nach einer gewissen Zeit öffnet.
Funktioniert auch recht gut.
Hier mal der Code:

Im Header:

<SCRIPT LANGUAGE="JavaScript">
<!-- Begin
closetime = 0; // Close window after __ number of seconds?
// 0 = do not close, anything else = number of seconds

function Start(URL, WIDTH, HEIGHT) {
windowprops = "left=50,top=50,width=" + WIDTH + ",height=" + HEIGHT;
preview = window.open(URL, "preview", windowprops);
if (closetime) setTimeout("preview.close();", closetime*1000);
}

function doPopup() {
url = "";
width = 1370;  // width of window in pixels
height = 800; // height of window in pixels
delay = 2;    // time in seconds before popup opens
timer = setTimeout("Start(url, width, height)", delay*1000);
}
//  End -->
</script>  

Im Body zum Öffnen:

 <BODY OnLoad="doPopup();">  

Jetzt habe ich aber ein Problem und weiß nicht wie ich es machen soll.
Ich möchte 2 Sachen noch haben.

  1. Es soll sich im Hintergrund öffnen und nicht im Vordergrund.

  2. Diesen Code wollte ich unterbringen, dass die Seite nur einmal pro Besuch aufgeht, nur leider klappt es nicht. Setze den Code glaube ich falsch:

 if(localStorage.getItem('firstview') != 'viewed'){ localStorage.setItem('firstview', 'viewed'); showPopup();  
 <body onload="if( [code-to-check-for-first-view] ){ currentJavascript() }">  

Hoffe ihr könnt mir weiterhelfen und zeigen wo und wie ich den Code unterbringen muss.

[1]: Verwende preview.blur(); um das Fenster in den Hintergrund zu setzen.
[2]: Wo ist die Funktion showPopup();. In deinem Code finde ich keine Definition davon.

Hey mdickie,

erstmal danke.
Ich glaube es sollte so heisse bzw. sollte in die Function mit hinein bei “doPopup”

     if(localStorage.getItem('firstview') != 'viewed'){ localStorage.setItem('firstview', 'viewed'); doPopup();

und dann mit:

     <body onload="if( [code-to-check-for-first-view] ){ currentJavascript() }">

aufgerufen werden. Nur weiss ich nicht ob der Aufruf auch so richtig ist oder ich noch was ändern muss.

Ich habe da eine Lösung:

<!DOCTYPE html>
<html>
<body onload="loaded();">
<script>
    function loaded() {
    if (is_first_view()) {
    do_popup();
    }
    }
    closetime = 60; // Close window after __ number of seconds?
    // 0 = do not close, anything else = number of seconds
     
    function start(url, width, height) {
    windowprops = "left=50,top=50,width=" + width + ",height=" + width;
    preview = window.open(URL, "preview", windowprops);
    if (closetime) setTimeout("preview.close();", closetime*1000);
    }
    
    function is_first_view() {
    if(localStorage.getItem('firstview') != 'viewed'){
    localStorage.setItem('firstview', 'viewed');
    return true;
    } else {
    return false;
    }
    }
     
    function do_popup() {
    url = "";
    width = 1370;  // width of window in pixels
    height = 800; // height of window in pixels
    delay = 2;    // time in seconds before popup opens
    timer = setTimeout("start(url, width, height)", delay*1000);
    }
    //  End -->
</script>
</body>
</html>

Hey,

ich habe den code jetzt so eingebaut, dass im header die function ist und im body die load funktion.
Nun habe ich festgestellt, dass er mir die URL nicht öffnet sonder es wird meine Seite aufgemacht mit folgender URL: meinedomain.de/function URL() { [native code]}

Kleiner Fehler ist mir unterlaufen. URL sollte kleingeschrieben werden.

Hey McDickie,

jetzt hat es geklappt.
Vielen Dank dafür.
Nur noch ne kleine Frage, kann ich da Fenster auch gleich im Hintergrund laden lassen?
Denn es öffnet sich noch im Vordergrund.

Super Sache :wink:

Hast du schon preview.blur(); nach preview = window.open(url, "preview", windowprops); eingesetzt?

Ich habs so eingesetzt:

preview = window.open(url, “preview”, windowprops);
preview.blur();

darunter gesetzt, war das falsch?

Sollte eigentlich gehen, aber vielleicht funktioniert es wenn du ein window.focus(); noch hinten dran setzt. Eine Frage falls es nicht funktioniert welchen Browser verwendest du?

Also das script sieht nun so aus:

<script>
    function loaded() {
    if (is_first_view()) {
    do_popup();
    }
    }
    closetime = 60; // Close window after __ number of seconds?
    // 0 = do not close, anything else = number of seconds
     
    function start(url, width, height) {
    windowprops = "left=50,top=50,width=" + width + ",height=" + width;
    preview = window.open(url, "preview", windowprops); preview.blur(); window.focus();
    if (closetime) setTimeout("preview.close();", closetime*1000);
    }
   
    function is_first_view() {
    if(localStorage.getItem('firstview') != 'viewed'){
    localStorage.setItem('firstview', 'viewed');
    return true;
    } else {
    return false;
    }
    }
     
    function do_popup() {
    url = "";
    width = 1370;  // width of window in pixels
    height = 800; // height of window in pixels
    delay = 30;    // time in seconds before popup opens
    timer = setTimeout("start(url, width, height)", delay*1000);
    }
    //  End -->
</script>

Funktioniert wunderbar, aber das Fenster öffnet sich noch immer im Vordergrung und verschwindet nach 1 Sekunde. Möchte aber, dass es sich gleich im Hintergrund öffnet ohne zu erscheinen. blur und focus habe ich drin.

Du kannst mal probieren das Popup Fenster zuerst mit der URL about:blank starten und nachdem du das Fenster in den Hintergrund gesetzt hast, kannst du dann die eigentlich URL laden.

???
Wie soll das denn aussehen dann?
Keine Ahnung??

Ca. so:
windowprops = “left=50,top=50,width=” + width + “,height=” + width;
preview = window.open(‘about:blank’, “preview”, windowprops);
preview.blur();
window.focus();
preview.location.href=url;

Hat leider nicht geklappt.
Dann lass ich die erste version, da wird die Seite 1 Sekunde angzeigt und verschwindet dann.
Naja schade dass es nicht hin haut

So eine Möglichkeit, etwas im Hintergrund zu öffnen hab ich ja hier auch schon vergeblich gesucht: http://forum.byte-welt.net/threads/11260-Terminwecker
Daher am Ende mit einem kleinen Javaapplet im Systray gelöst.