Warum geht das net?

Hey liebe Experten,

ich sitze grad hier und programmier hier was schönes und dummerweise geht folgende Funktion net:

<!–
var oPopup = window.createPopup();
function Infobox(prmUrl,prmTarget,prmStyle)
{
var oPopBody = oPopup.document.body;
oPopup.document.body.location = „Infobox.asp“;
oPopup.show(-220, 160, 271, 284, document.body);
}
—>

Es kommt kein Fehler, sondern einfach nur ne leere weiße Box die verschwindet wenn man nebendran klickt. DAS IST SINN DER SACHE! Aber in der Box soll eigentlich die Datei: InfoBox.asp erscheinen, was ich versucht hab hier zuzuweisen - geht aber net… WARUM??? Weiß das jemand? Wär ganz wichtig und ich bräuchte das noch bis heut Abend…

DANKE - Jens

Hi !

hast Du hiner dem location nicht das .href vergessen ???

das dachte ich auch, nur wenn ich HREF dahin schreib, dann bekomm ich net mal mehr ein weißes Fenster, sondern gar nix mehr ?! auch das weglassen von „body“ bringt nix…

JENS

Hallo,

createPopup() liefert eigentlich ein popup window object zurueck.
Das location-Object ist in der Regel einem window-Object in der Hierachie direkt zugeordnet.
Demnach muesste es eigentlich oPopup.location.href = „Infobox.asp“; heissen.

Ciao

hey, danke! muß ich morgen auf der arbeit gleich mal ausprobieren…

JENS

geht immer noch net…
Morgen,

hab deinen Vorschlag eben ausprobiert, funktioniert aber leider net :frowning: Es is dann noch net mal ein weißes Fenster zu sehen… passiert absolut nix, noch net mal irgendein Fehler oder so… hast du noch nie Idee??? Ich muß das dummerweise heut noch rauskriegen…

Danke - JENS

Hallo,

im Grunde ist es schon so, wie ich gesagt habe.
Trotzdem habe ich noch mal nachgeschaut.

„createPopup“ liefert ein IHTMLPopup zurück.
Diese spezielle window ist aber eingeschränkt und der Inhalt kann nur via innerHTML gesetzt werden, da dieses Fenster (wie der Name schon sagt), wie ein ToolTip wirken soll.

var oPopup = window.createPopup();

oPopup.document.body.style.backgroundColor = "lightyellow";
oPopup.document.body.style.border = "solid black 1px";
oPopup.document.body.innerHTML = " **Hello World**";

oPopup.show(100,100,100,100, document.body);

Der Inhalt von Poupup ist KEINE gültige HTML-Seite, aber er kann Text enthalten, dessen Aussehen man ueber HTML beschreiben kann.

In Deinem Fall solltest Du schon über window.open() ein „richtiges“ Fenster laden, was wie ein Popup wirkt.

Beispiel:

var winInst = null;

winInst = window.open("Infobox.asp","\_popup\_","fullscreen");
// Or later: winInst.location.href = "Infobox.asp";
winInst.resizeTo(100,100);
winInst.moveTo(100,100);

da hast du schon recht, hatte ich auch zuerst, aber bringt mir leider nix, weil das Fenster wieder weggehen soll wenn man daneben klickt, eben wie dieses Tooltip-Dings… weißt du was ich meine? Und das mit InnerHTML geht in meinem Fall net, weil da ne ASP Seite rein soll :frowning:

Hast du ne Idee?

Danke für deine hilfe - JENS

Hallo,

…schwierig, denn beides schliesst sich anwendungsfall-maessig aus.
Ich wuerde an Deiner Stelle wirklich ein „normales Window“ nehmen, dass Du nicht per „fullscreen“ oeffnest, sondern eines ohne alles nur mit TitleBar. Der „fullscreen-Modus“ ist zu sehr mit flickering behaftet.

Auf dem geoeffneten Fenster fragst Du dann so lange den onMousemove-Event ab, bist Du keinen Event mehr bekommst. Denn dann bewegt der User seine Mouse nicht mehr ueber das Fenster und Du setzte einen setTimeout() ab, der nach eine definierten Zeit ein self.close(); absetzt.

Eine andere Moeglichkeit ist in dem geoeffneten Fenster folgende:

function init()
{
 window.document.body.onfocusout = function() {self.close();};
}

Hier ist aber zu bedenken, dass Du Dich in einem Grenzbereich befindest mit allerneuesten Features des MSIE, was nur ab Version 5.5 oder 6 geht.
Ein lostFocus durch klick auf den Desktop oder dergleichen kann naemlich nicht so einfach per Script auf das entsprechende Fenster durchgeroutet werden, denn das Script selbst ist meist auf die Instanz des Fensters selbst beschraenkt.

Du kannst aber auch den onfocus des Hauptfensters abfragen. Dieser macht dann, wenn er zuvor:

var winInst = window.open("./Popup.htm",_popup_,"…");

gemacht hat, ein winInst.close();
Dies wirkt aber nicht wenn der User woanders hinklickt.

Das einfachste ist es Deinem Kunden dies auszureden.

CIAO