kostenloser Webspace werbefrei: lima-city


Javascript PopUp öffnet sich nicht im IE7

lima-cityForumDie eigene HomepageHTML, CSS & Javascript

  1. Autor dieses Themas

    b****r

    Hallo an alle,

    (Nachtrag: die beiden Domains in diesem Problem zeigen auch auf 2 verschiedene Webserver)
    (Nachtrag2: Ich weiß das Domain != WEbserver ist :P also bitte deswegen nicht korrigieren :biggrin: )
    (Nachtrag3: ich muss \"leider\" auch erwähnen das die JavaScript-Funktion in einer Flash-Datei aufgerufen wird)

    ich habe eine Seite.
    Diese befindet sich in einem Frame.
    Die Seite liegt auf domain1.at/index.html.
    Der Frame src liegt auf domain2.at/index.html
    Im Frame src habe ich eine Javascript Funktion die ein PopUp aufruft

    function open_fenster(){
      popup_x_pos = (screen.availWidth/2)-(500/2);
      popup_y_pos = (screen.availHeight/2)-(500/2);
      url=\"http://www.domain1.at/seite.html\";
      window.open(url,\"was\",\"width=500,height=550,top=\"+popup_y_pos+\",left=\"+popup_x_pos+\",resizable=no,scrollbars=yes\");
    }


    Wenn ich die seite \"domain2.at/index.html\" funktioniert das JavaScript PopUp so wie es soll.
    Ruf ich aber die seite \"domain1.at/index.html\" (=die seite mit dem Frame) auf so funktioniert das PopUp überhaupt nicht. Das geschieht allerdings nur im IE7.
    Demnach versuche ich via JavaScript von der Domain2 eine Seite aufzurufen die auf der Domain1 liegt.
    \"Alle\" anderen Browser (IE6, FF2, Safari3, Opera9, Ie5.2) machen genau das was ich will, nur der IE7 weigert sich.

    Hat irgendwer einen rat warum das so ist?


    Beitrag geändert: 4.4.2008 15:04:01 von beliar
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Mir ist jetzt nicht ganz klar, ob das JS in der Flash-Datei oder im frame src aufgerufen wird...
    Aber ist eine Frame-Seite eigentlich nicht nur für die Aufteilung des Schirmes zuständig (abgesehen vom noframe-teil) ? Evtl. verarbeiten alle Browser ausser IE dort auch weitere Html-Tags, obwohl diese dort eigentlich nix verloren haben... Vielleicht klappts, wenn du das JS in eine der im framesrc aufgeführten Seiten einbindest und dort aufrufst. Ist jetzt nur geraten...


    Beitrag geändert: 4.4.2008 15:33:01 von gcsdriver
  4. Autor dieses Themas

    b****r

    Hi gscdriver,

    danke für deine Antwort, allerdings lag das Problem woanders.

    DIe Flash-Version 9.0.115.0 und IE7 verstehen sich einfach nicht. Das habe ich auf der Adobe seite nachlesen können (link weiß ich nicht mehr) google hilft aber weiter.
  5. t*****b

    Was mit nicht ganz klar ist ist, ob du du die Funktion für das PopUp auserhalb des Frames aufrufen willst. Das geht dann so: framename.open_fenster
    Zudem könnte screen.availWidth ein Problem sein mit dem der IE nicht zurecht kommt. Denn bei Größenangaben unterscheidet er sich von den anderen Browsern. Versuch es einmal mit innerWidth (oder Ähnlichem).
  6. e********l

    Mal von der Grundproblematik abgesehen hat Javascript keine Erlaubnis Ereignisse auf anderen Seiten auszuführen die auf einer anderen Domain liegen. Ansonsten haben deine Browser eine sehr sehr große XSS Lücke ;)
  7. Autor dieses Themas

    b****r


    Was mit nicht ganz klar ist ist, ob du du die Funktion für das PopUp auserhalb des Frames aufrufen willst. Das geht dann so: framename.open_fenster
    Zudem könnte screen.availWidth ein Problem sein mit dem der IE nicht zurecht kommt. Denn bei Größenangaben unterscheidet er sich von den anderen Browsern. Versuch es einmal mit innerWidth (oder Ähnlichem).

    Zu \"screen.availWidth\": Dieser Code ist schon etwas Älter. Heutzutage können sogar schon IE-User entscheiden wohin (Tab/Fenster) neue Seiten geöffnet werden bzw ob Javascript die Fenstergröße manipulieren darf. Für zukünftige Projekte werde ich auf den Einsatz von Javascript verzichten. Für die jetztigen/ältere Projekte muss ich es in Kauf nehmen das die PopUs nicht so erscheinen wie geplant. Da müssten schon die Kunden zu mir kommen und sich beschweren das Ihr PopUp nicht mehr ordnungsgemäß angezeigt wird.


    Mal von der Grundproblematik abgesehen hat Javascript keine Erlaubnis Ereignisse auf anderen Seiten auszuführen die auf einer anderen Domain liegen. Ansonsten haben deine Browser eine sehr sehr große XSS Lücke ;)


    Die JavaScript-Funktion und das Flash-File liegen im selben HTML-File somit im selben Frameset und auch Domain.

    Allerdings liegt das Frame auf einer anderen Domain und das verursacht Probleme bei der genannten Flash-Player-Version und IE7


    Beitrag geändert: 29.4.2008 13:18:11 von beliar


    Beitrag geändert: 29.4.2008 13:18:37 von beliar
  8. e********l

    Ich sag ja das hat was mit der Sicherheit vom IE7 zu tun -.-
    Was aber funktionieren könnte, wäre nach dem öffnen des Frames, das Frame einfach das Popup öffnen zu lassen. Denn das Frame dürfte trotzdem noch wissen von dem es erschaffen wurde und so könnte man den Source abfragen und entsprechend reagieren.

    OT: Popups sind doof ^^\"

    Beitrag geändert: 29.4.2008 13:27:42 von evil-devil
  9. Autor dieses Themas

    b****r

    Ich habe da einfach eine Player-Überprüfung davor geschaltet der den User Hinweist (wenn der die Version 9.0.115.0 hat) das die Seite möglicherweise (wenn er IE7 hat) nicht funktioniert und bitte ihn ganz höflich auf den neuesten Upzudaten.


    Beitrag geändert: 29.4.2008 14:31:36 von beliar
  10. e********l

    @Sicherheit: War meine bisherige Erfahrung mit dem IE7 und Popups/Werbe Layer.

    @Flash 9: Hmm, keine Ahnung. Kannst du nicht irgendwie eine Alternative für nicht Flash9 Nutzer schreiben, das nicht das Flash sondern direkt aus dem Browser per JS dein jeweiliges JS aufgerufen wird?
  11. Autor dieses Themas

    b****r


    @Sicherheit: War meine bisherige Erfahrung mit dem IE7 und Popups/Werbe Layer.

    @Flash 9: Hmm, keine Ahnung. Kannst du nicht irgendwie eine Alternative für nicht Flash9 Nutzer schreiben, das nicht das Flash sondern direkt aus dem Browser per JS dein jeweiliges JS aufgerufen wird?

    @Sicherheit: IE + Sicherheit = error;

    @Flash 9: Soweit ich weiß ist die Seite für Flash 8 geschrieben. Der User sieht diese \"Fehlermeldung\" nur dann wenn er genau (ganz genau) die Version 9.0.115.0 hat. Mit jeder anderen Version gehts. Adobe hat mit genau dieser Version eine Neuerung hinzugefügt womit der IE7 nicht klar kommt. Mit neueren bzw älteren Version gibt es keine Probleme


    Beitrag geändert: 29.4.2008 14:28:21 von beliar
  12. e********l

    Dann würde ich das ehrlich gesagt unter \"höhere Gewalt\" ad acta legen. Was kannst du denn dafür wenn MS bzw. Adobe Mist bauen? Da kann dir dein Kunde noch so viel auf dem Dach rumspringen.

    Du könntest nun höchstens noch den Benutzer darauf aufmerksam machen das Flash 9.x nicht mit dem IE7.x funktioniert und er doch bitte einen anderen Browser nutzen möge :D
  13. Autor dieses Themas

    b****r


    Ich habe da einfach eine Player-Überprüfung davor geschaltet der den User Hinweist (wenn der die Version 9.0.115.0 hat) das die Seite möglicherweise (wenn er IE7 hat) nicht funktioniert und bitte ihn ganz höflich auf den neuesten Upzudaten.

    Hab ich doch gemacht :)
  14. e********l

    Ups, das hab ich irgendwo überlesen. Sorry.
  15. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!