Raffi: Zweites Fenster auf Click öffnen, sodass man im Hauptfenster weiterlesen kann

Hallo,

ich hoffe mir kann jemand weiterhelfen.

Meine Vorstellung: Es soll sich über einen Link oder Button ein Fenster einer Internetseite (z. B. verlinkter Wikipedia-Artikel) am rechten Bildrand öffnen. Dabei soll man aber den Inhalt auf der Hauptseite weiterlesen können und auch scrollen können. Bei einem normalen Popup-Fenster oder Lightbox hat man ja das Problem, dass wenn man auf die Hauptseite clickt, sich das Popup-Fenster schließt.

Die Idee dahinter ist, unbekannte Sachen nachzuschlagen, ohne dass man die Fenster wechseln muss, sonder parallel den eigentlichen Text auch weiter geöffnet hat und auch weiterlesen kann.

Ich hoffe, es ist verständlich, was ich mir vorstelle. Ich würde mich sehr freuen, wenn mir da jemand weiterhelfen kann.

Danke!

  1. Hi,

    Meine Vorstellung: Es soll sich über einen Link oder Button ein Fenster einer Internetseite (z. B. verlinkter Wikipedia-Artikel) am rechten Bildrand öffnen.

    das ist schon das erste Problem: Ein Fenster, das über einen Link mit target-Attribut geöffnet wird, oder auch mit window.open() per Javascript, kannst du meines Wissens nicht gezielt positionieren. Noch schlechter: Viele Browser sind so konfiguriert, dass sie derartige Links nicht in einem neuen Fenster, sondern stattdessen nur in einem neuen Tab öffnen.

    Dabei soll man aber den Inhalt auf der Hauptseite weiterlesen können und auch scrollen können. Bei einem normalen Popup-Fenster oder Lightbox hat man ja das Problem, dass wenn man auf die Hauptseite clickt, sich das Popup-Fenster schließt.

    Bei einem normalen Popup nicht, das rutscht dann nur hinter das Hauptfenster.

    Die Idee dahinter ist, unbekannte Sachen nachzuschlagen, ohne dass man die Fenster wechseln muss, sonder parallel den eigentlichen Text auch weiter geöffnet hat und auch weiterlesen kann.

    Dann fällt mir eigentlich nur noch die Möglichkeit ein, dem Dokument ein beliebiges Element zu überlagern (z.B. ein div, wenn einem nichts semantisch sinnvolleres einfällt), und das mit position:fixed an die gewünschte Stelle zu positionieren.
    Auf die Gefahr hin, dass Besucher dann wieder schimpfen: Ausgerechnet an der Stelle wollte ich das nicht haben!

    Ciao,
     Martin

    --
    Computer müssen weiblich sein: Eigensinnig, schwer zu durchschauen, immer für Überraschungen gut - aber man möchte sie nicht missen.
    1. Hi there,

      das ist schon das erste Problem: Ein Fenster, das über einen Link mit target-Attribut geöffnet wird, oder auch mit window.open() per Javascript, kannst du meines Wissens nicht gezielt positionieren.

      Warum sollte das nicht gehen? Die eigentliche Frage wäre nur, wie sinnvoll das ist.

      Noch schlechter: Viele Browser sind so konfiguriert, dass sie derartige Links nicht in einem neuen Fenster, sondern stattdessen nur in einem neuen Tab öffnen.

      Ja, dann wär's natürlich aus mit der fröhlichen Positioniererei. Aber das kann man schon steuern, durch entsprechende Angaben im dritten Parameter, daß das neue Fenster nicht in einem Tab aufgeht. Aber, wie gesagt, die eigentliche Frage ist halt, ob solche Javascripttricksereien sinnvoll sind und der Usability nicht eher ab- als zuträglich sind...

      1. Hallo klawischnigg,

        Aber das kann man schon steuern, durch entsprechende Angaben im dritten Parameter, daß das neue Fenster nicht in einem Tab aufgeht.

        Welches window feature sollte das sein? Mir ist keines bekannt, im Gegenteil: die MDN spricht doch sogar davon, dass man sich nicht darauf verlassen kann, dass ein neues Fenster aufgeht.

        LG,
        CK

        1. Hi there,

          Aber das kann man schon steuern, durch entsprechende Angaben im dritten Parameter, daß das neue Fenster nicht in einem Tab aufgeht.

          Welches window feature sollte das sein? Mir ist keines bekannt, im Gegenteil: die MDN spricht doch sogar davon, dass man sich nicht darauf verlassen kann, dass ein neues Fenster aufgeht.

          Wenn man im Chrome zB als dritten Parameter nur irgendetwas wie "width=200" 'reinschreit, dann ignoriert er zwar zunächst die width, aber das neue Fenster geht nicht als Tab sondern eben als neues Fenster auf. (Zumindest war das bis Version 49 so, eine neuere Version hab ich auf dem Rechner vor dem ich gerade sitze nicht)...

          1. Hallo,

            Wenn man im Chrome zB als dritten Parameter nur irgendetwas wie "width=200" 'reinschreit, ...

            war das mit dem Schreien Absicht oder ein Fipptehler? ;-)

            ... dann ignoriert er zwar zunächst die width, aber das neue Fenster geht nicht als Tab sondern eben als neues Fenster auf.

            Über spezifische Eigenheiten von Chrome kann ich nichts sagen; Firefox hält sich aber AFAIK an die User-Einstellung, er solle neue Tabs anstatt neuer Fenster öffnen.

            Aber selbst wenn Chrome tatsächlich ein neues Fenster öffnet, wie du sagst, was nützt das, wenn er trotzdem die angegebene Fensterbreite ignoriert? Ich setze mal voraus, dass man per Benutzer-Konfiguration Javascript auch verbietet, Fenstergröße und -position zu verändern. Ist das nicht beim FF mittlerweile sogar Default? Da bin ich mir gerade nicht sicher.
            Fazit: Es geht zumindest nicht zuverlässig, sondern bestenfalls unter bestimmten Voraussetzungen.

            So long,
             Martin

            --
            Computer müssen weiblich sein: Eigensinnig, schwer zu durchschauen, immer für Überraschungen gut - aber man möchte sie nicht missen.
            1. Hi there,

              Wenn man im Chrome zB als dritten Parameter nur irgendetwas wie "width=200" 'reinschreit, ...

              war das mit dem Schreien Absicht oder ein Fipptehler? ;-)

              Vertippt, herrlich;)

              ... dann ignoriert er zwar zunächst die width, aber das neue Fenster geht nicht als Tab sondern eben als neues Fenster auf.

              Über spezifische Eigenheiten von Chrome kann ich nichts sagen; Firefox hält sich aber AFAIK an die User-Einstellung, er solle neue Tabs anstatt neuer Fenster öffnen.

              Aber selbst wenn Chrome tatsächlich ein neues Fenster öffnet, wie du sagst, was nützt das, wenn er trotzdem die angegebene Fensterbreite ignoriert? Ich setze mal voraus, dass man per Benutzer-Konfiguration Javascript auch verbietet, Fenstergröße und -position zu verändern. Ist das nicht beim FF mittlerweile sogar Default? Da bin ich mir gerade nicht sicher.

              Afaik kann man das nachträglich sehr wohl ändern (oder, wie gesagt, konnte, ich kann's derzeit nicht überprüfen, wie gesagt, beim älteren Chrome funktionierts)

              Fazit: Es geht zumindest nicht zuverlässig, sondern bestenfalls unter bestimmten Voraussetzungen.

              Ja, eh, ich würd's schon von der Usability anders lösen. Und davon abgesehen würde ich das wenn's denn unbedingt sein muß mit einem entsprechendem "Layer" machen, der halt bei Bedarf sichtbar wird. Userfreundlich ist das idR auch nicht besonders und auf einem Device mit kleineren Dimensionen ohnehin praktisch nur unter Krämpfen zu realisieren. Meistens werden solche Geschichten halt eingebaut, um die Anwender zu beeindrucken, egal, ob die das überhaupt wollen oder gar brauchen. Ein echter Mehrwert schaut meistens anders aus...

              1. Hallole,

                Wenn man im Chrome zB als dritten Parameter nur irgendetwas wie "width=200" 'reinschreit, ...

                war das mit dem Schreien Absicht oder ein Fipptehler? ;-)

                Vertippt, herrlich;)

                ja, wunderbar. Und so passend, dass ich erst dachte, es sei Absicht.

                Aber selbst wenn Chrome tatsächlich ein neues Fenster öffnet, wie du sagst, was nützt das, wenn er trotzdem die angegebene Fensterbreite ignoriert? Ich setze mal voraus, dass man per Benutzer-Konfiguration Javascript auch verbietet, Fenstergröße und -position zu verändern. Ist das nicht beim FF mittlerweile sogar Default? Da bin ich mir gerade nicht sicher.

                Hier antworte ich mir mal selbst: a) An die wirklich nützlichen Einstellungen kommt man ja mittlerweile nur noch über about:config (eine Menge Einstellmöglichkeiten sind zumindest aus dem GUI verschwunden), also ist es unwahrscheinlich, dass ein Durchschnittsanwender da etwas rumschraubt. Und b) ich sehe gerade bei mir, dass die Eigenschaft dom.disable_window_move_resize den Defaultwert false hat. Bei einem "Normalo" dürften also window.moveTo() und window.resizeTo() noch die erwartete Wirkung haben.

                Afaik kann man das nachträglich sehr wohl ändern (oder, wie gesagt, konnte, ich kann's derzeit nicht überprüfen, wie gesagt, beim älteren Chrome funktionierts)

                Beim Firefox nicht mehr, wenn man die oben genannte Einstellung auf true ändert.

                Fazit: Es geht zumindest nicht zuverlässig, sondern bestenfalls unter bestimmten Voraussetzungen.

                Ja, eh, ich würd's schon von der Usability anders lösen. Und davon abgesehen würde ich das wenn's denn unbedingt sein muß mit einem entsprechendem "Layer" machen, der halt bei Bedarf sichtbar wird.

                Meine Rede.

                Userfreundlich ist das idR auch nicht besonders

                Auch das hatte ich ja schon angerissen.

                Meistens werden solche Geschichten halt eingebaut, um die Anwender zu beeindrucken, egal, ob die das überhaupt wollen oder gar brauchen. Ein echter Mehrwert schaut meistens anders aus...

                Allerdings.

                Ciao,
                 Martin

                --
                Computer müssen weiblich sein: Eigensinnig, schwer zu durchschauen, immer für Überraschungen gut - aber man möchte sie nicht missen.
  2. @@Raffi

    Meine Vorstellung: Es soll sich über einen Link oder Button ein Fenster einer Internetseite (z. B. verlinkter Wikipedia-Artikel) am rechten Bildrand öffnen.

    Was meinst du bei einem Smartphone mit „am rechten Bildrand“?

    Ich hoffe, es ist verständlich, was ich mir vorstelle.

    Ja, ein iframe.

    LLAP 🖖

    --
    „Man kann sich halt nicht sicher sein“, sagt der Mann auf der Straße, „dass in einer Gruppe Flüchtlinge nicht auch Arschlöcher sind.“
    „Stimmt wohl“, sagt das Känguru, „aber immerhin kann man sich sicher sein, dass in einer Gruppe Rassisten nur Arschlöcher sind.“

    —Marc-Uwe Kling
    1. Hallo,

      Meine Vorstellung: Es soll sich über einen Link oder Button ein Fenster einer Internetseite (z. B. verlinkter Wikipedia-Artikel) am rechten Bildrand öffnen.

      Was meinst du bei einem Smartphone mit „am rechten Bildrand“?

      hat dein Smartphone etwa keinen rechten Bildrand? - Die Tatsache, dass der je nach Orientierung sogar an unterschiedlichen Seiten des Displays sein kann, heißt ja nicht, dass es ihn nicht gibt.

      Ich hoffe, es ist verständlich, was ich mir vorstelle.

      Ja, ein iframe.

      Das wäre eine Lösung für den umgekehrten Fall: Dass man im Popup scrollen kann, während das Hauptdokument stehenbleibt.

      Ciao,
       Martin

      --
      Computer müssen weiblich sein: Eigensinnig, schwer zu durchschauen, immer für Überraschungen gut - aber man möchte sie nicht missen.
      1. Hi,

        Was meinst du bei einem Smartphone mit „am rechten Bildrand“?

        hat dein Smartphone etwa keinen rechten Bildrand?

        nur ein kugelförmiges[1] Phone ist smart … 😉

        cu,
        Andreas a/k/a MudGuard


        1. ok, darf auch ein Ellipsoid oder Torus oder so sein … 😉 ↩︎

        1. Hallo,

          hat dein Smartphone etwa keinen rechten Bildrand?

          nur ein kugelförmiges Phone ist smart … 😉

          die dürften recht selten sein. Aber da gab's doch mal eine schöne Verballhornung von Physik-Knobelaufgaben:
          ... wir gehen vereinfachend davon aus, dass die Kühe kugelförmig sind und ihre gesamte Masse im Mittelpunkt konzentriert ist ... oder so ähnlich.

          Ciao,
           Martin

          --
          Computer müssen weiblich sein: Eigensinnig, schwer zu durchschauen, immer für Überraschungen gut - aber man möchte sie nicht missen.
          1. Hallo,

            ... wir gehen vereinfachend davon aus, dass die Kühe kugelförmig sind und ihre gesamte Masse im Mittelpunkt konzentriert ist ... oder so ähnlich.

            video

            Gruß
            Kalk

    2. Hello,

      Was meinst du bei einem Smartphone mit „am rechten Bildrand“?

      Na das kommt dann auf der Rückseite vom Display. Hast Du etwa noch kein TIO-Display?

      Kannste mal sehen, wid rückständig die Baumfrucht-Leute sind... ;-P

      scnr

      Glück Auf
      Tom vom Berg

      (TIO = Turn Inside Out)

      --
      Es gibt nichts Gutes, außer man tut es!
      Das Leben selbst ist der Sinn.
  3. Hallo Raffi,

    dein Vorhaben wird auf einem Smartphone oder in einem kleinen Browserfenster auf wenig Freude stoßen. Überlege also gut, wann es sinnvoll ist, und biete dieses Feature nur als Option an, die man ausdrücklich einschalten muss und jederzeit abschalten kann. Grundsätzlich ist es schwierig, dem User vorzugeben, wie sich Fenster verhalten oder positionieren. Die Chance, dem User damit eine Freude zu machen, ist vermutlich kleiner als die, ihm damit ins Knie zu schießen.

    Wenn Du dagegen an eine Portalseite denkst, die Du nur für (d)einen Desktop-Bildschirm baust, könntest Du den verlinkten Inhalt in einem iframe darstellen. Den kannst Du in die Hauptseite integrieren, wie Du möchtest.

    Für die Ausführung der Links musst Du mit JavaScript nachhelfen (click-Event der Links behandeln und die Default-Aktion unterdrücken) und die verlinkte Seite im src-Attribut des iframe eintragen.

    Rolf

    --
    sumpsi - posui - clusi
  4. Die Idee dahinter ist, unbekannte Sachen nachzuschlagen, ohne dass man die Fenster wechseln muss, sonder parallel den eigentlichen Text auch weiter geöffnet hat und auch weiterlesen kann.

    Nun, wenn Du 2 Fenster haben willst, kommst nicht drumherum ums Wechseln. Wenn es ein Backend ist für eine kleine Elite am PC, spricht nichts gegen window.open().

    MFG

  5. Darauf einen iFrame zu verwenden bin ich gar nicht gekommen. Vielen Dank für die Ideen. Ich habe jetzt folgenden Code. Jetzt überlege ich gerade, wie ich noch einen Button oder Link hinzufügen kann, sodass sich der iFrame auch schließen bzw. verbergen lässt.

    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.0/jquery.min.js"></script>
    <script type="text/javascript">
    $(function(){
        $('#button').click(function(){ 
            if(!$('#iframe').length) {
                    $('#iframeHolder').html('
    <iframe id="iframe" src="https://de.wikipedia.org/wiki/Wikipedia:Hauptseite" width="30%" height="1000" frameborder="0" align="right"></iframe>');
            }
        });   
    });
    </script>
     
    <button id="button">Button</button>
    <div id="iframeHolder"></div>
    
    1. Lieber Raffi,

      wie ich noch einen Button oder Link hinzufügen kann, sodass sich der iFrame auch schließen bzw. verbergen lässt.

      dazu bedarf es einer passenden display-Eigenschaft. Die kannst Du z.B. mit JavaScript vergeben.

      Liebe Grüße

      Felix Riesterer

      1. Hallo Felix Riesterer,

        dazu bedarf es einer passenden display-Eigenschaft. Die kannst Du z.B. mit JavaScript vergeben.

        Ungetestet würde ich sagen „Nö“. Lässt sich das hidden-Attribut nicht auf das Iframe anwenden?

        Bis demnächst
        Matthias

        --
        Pantoffeltierchen haben keine Hobbys.
        ¯\_(ツ)_/¯
        1. Lieber Matthias,

          Ungetestet würde ich sagen „Nö“.

          ;-)

          Lässt sich das hidden-Attribut nicht auf das Iframe anwenden?

          Ebenso. (Kannste als "ebenso nö" oder als "Alternative" interpretieren.)

          Liebe Grüße

          Felix Riesterer