Popup fenster eleminiert

hi
ich such da ne möglichkeit bei verschiedenen anbietern, wie z.b. tripod.,oder freecity.de die popup fenster zu terminieren, so dass sie beim aufruf der seite erst garnicht geladen werden können.
wie geht das ?
soweit ich weiß, gibts dafür ein java script…
bin mir aber nicht ganz sicher…hmmh…

Hallo,

ich kenne mich mit Tripod nicht aus, denn ich bin bei einem anderen Provider.
Ich habe zwar auch mal von so einem Script gehoert, aber ich kann mir schwer vorstellen,
das Tripod das einfach so zulaesst oder duldet.
Trotzdem habe ich mir die Sache bei einem Tripod-Member mal angeschaut.

Wenn ich das richtig verstehe, dann fuegt Tripod gleich hinter dem head-Tag - sobald man seine Seite hochlaedt -
folgendes Script ein:

<!–
function TripodShowPopup()
{
// open the popup window
var popupURL = „/adm/popup/roadmap.shtml“;
var popup = window.open(popupURL,„TripodPopup“,‚toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=0,resizable=0,width=472,height=112‘);
popup.location = popupURL;
popup.focus();
}
TripodShowPopup();
// -->

Da der Browser die Seite von oben nach unten abarbeitet,
ist die erste Aktion eben der Aufruf der Funktion TripodShowPopup().
Tripod merkt sich zwar das Handle auf das PopUp-Window in der Variablen popup.
Aber diese ist lokal in der Funktion TripodShowPopup() gekapselt.
Der Function-Scope laesst es also nicht zu, das man auf das Handle zugreift,
denn sonst koennte man das Window ueber ein Script, was man hinter style- oder body-Tag setzt, wieder schliessen:

<!–
if ((popup) && (!popup.closed))
popup.close();
// -->

Aber leider geht das nicht, denn Du hast keinen Zugriff auf die Instanz.
Ein kleine Schwachstelle hat die Sache allerdings schon.
Denn Tripod vergibt an sein Fenster selbstverstaendlich einen Target, naemlich den String „TripodPopup“.
Ueber window.open() koennen nie zwei oder mehr getrennte Fenster mit gleichem Target vergeben werden,
was auch logisch ist, denn man muss ja einen eindeutigen Zugriff auf jedes dieser Fenster haben.
Also waere da noch der Versuch, sich brute force maessig die Kontrolle ueber das Handle zurueck zu holen.
Man oeffnet einfach noch mal ein Window und zwar mit gleichem Target
und schliesst es dann gleich wieder im naechsten Schritt. Das sieht dann wie folgt aus:

<!–
var popup = window.open("",„TripodPopup“,"");
if ((popup) && (!popup.closed))
popup.close();
// -->

Das flickering also, dass das Fenster kurz erscheint und dann wieder verschwindet,
kann Du meiner Meinung nicht verhinden.
Du kannst aber auch das Fenster stehen lassen und ueberschreibst den Inhalt:

var popup = window.open("http://www.mysite.de/mypage.htm",„TripodPopup“,"");

Weitere Ueberlegung:

Du musst ein Script vor und hinter dem Tripod-Script plazieren.
Z.B. noch vor dem head-Tag, aber hinter dem html-Tag und dass andere meinetwegen hinter style-Tag
Das ist zwar nicht konform, aber wir wollen ja auch nicht anstaendig sein…
Wie uns ja auffaellt, oeffnet Tripod ein Fenster derart, dass es kein top und left bzw. screenX, screenY angibt.
Das ist cool…aber leider nur halb…
Also was machen wir…
Wir oeffnen noch vor dem Tripod-Script ein Window mit dem gleichen Target
und setzen das Window ausserhalb des Anzeigebereiches des Monitor. Das merkt kein Schwein…
Wenn Tripod sein Script abarbeitet, laedt es ja in das gleich nicht sichtbare Fenster,
danach schiessen wir es wieder ab. Das sieht dann so aus:

<!–
var scrHeight = screen.height;
var wndStyle = „toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=0,resizable=0,“;
wndStyle += „left=0,top=“+scrHeight+",screenX=0,screenY="+scrHeight+",";
wndStyle += „width=472,height=112“;
var popup = window.open("",„TripodPopup“,wndStyle);
//–>

<!–

function TripodShowPopup()
{
// open the popup window
var popupURL = „/adm/popup/roadmap.shtml“;
var popupURL = „“;
var popup = window.open(popupURL,„TripodPopup“,‚toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=0,resizable=0,width=472,height=112‘);
popup.location = popupURL;
popup.focus();
}
TripodShowPopup();

//–>

<!–
if ((popup) && (!popup.closed))
popup.close();

self.focus();
//–>

Leider hat der Netscape was dagegen, dass Window ausserhalb des sichtbaren Monitorbereiches zu legen.
Deshalb geht dies nur im IE.

Besser du wechselst den Provider…

CIAO

also vir2,
du bist schon ziemlich genial. vor allem die zeit die du dir nimmst, aber warum nennst du dich blutiger anfänger :smile:)))) schaumal wenn es 3 so typen wie dich hier drinne gebe, dann hätt ich wohl nie wieder probleme mit js-lösungen und ich bin wirklich erst seit 2 monaten in der javascript programmeriung und hatt vorher nie was mit programmiersprachen zu tun.

thanx und respekt