MasterBene: frame scrollen?

hi,

ich habe folgendes problem:
ich habe ein hauptfenster un in dem hauptfenster ein iframe.
da der scrollbalken im iframe ziemlich doof ausschaut, moechte ich den scrollblaken gegen zwei graphiken austauschen, bei welchen beim mouseover ein ereigniss ausgeloest wird, welches das frame scrolt.
die graphicken befinden sich im hauptfenster.

ist das^^ moeglich, wenn ja dann wie?
(wenn nicht mir js, womit dann evtl dann?)

MFG MB

  1. Hallo MasterBene,

    ich habe ein hauptfenster un in dem hauptfenster ein iframe.
    da der scrollbalken im iframe ziemlich doof ausschaut, moechte ich den scrollblaken gegen zwei graphiken austauschen, bei welchen beim mouseover ein ereigniss ausgeloest wird, welches das frame scrolt.
    die graphicken befinden sich im hauptfenster.

    Nette-----^^^^^ Schreibweise!

    ist das^^ moeglich, wenn ja dann wie?

    Klar, z.B. so

    Gruß Gernot

    1. hi,
      ok es geht, aber ich kriege es nicht zum laufen:
      ich habe den framenamen "details" auf meinen Framenamen geaendert ("hauptfenster") und den java-code in den head eingefuegt.
      ich habe sicher etwas vergessen, weiss aber nicht was..

      plz help

      MFG MasterBene

      PS: ist die sprache besser? ;) ..

      1. Hallo MasterBene,

        ok es geht, aber ich kriege es nicht zum laufen:
        ich habe den framenamen "details" auf meinen Framenamen geaendert ("hauptfenster") und den java-code in den head eingefuegt.
        ich habe sicher etwas vergessen, weiss aber nicht was..

        <body onLoad="if(self!=parent)parent.pruefe()">

        muss im eingebetteten Iframe-Dokument stehen.

        Möglicherweise fehlt aber noch mehr.

        PS: ist die sprache besser? ;) ..

        Wieso, ich sagte doch die Wortschöpfung ist nett.

        Gruß Gernot

        1. hi gernot,
          ok ich kriege jetzt wenigstens ne fehlermeldung, aber wirklich klappen tut es nicht; deswegen mal der code (der von mir geaendert wurde):

          <script type="text/javascript">
          <!--
          function pruefe() {
             if(document.all&&!window.opera) {
               var a=document.all.HauptFenster;
               HauptFenster.document.body.scroll='no';
             } else {
               var a=document.getElementsByName('HauptFenster')[0];
               a.scrolling='no';
             }
             var b=HauptFenster.document.getElementById('cont');
             var c=document.getElementById('link');

          if(a.height<b.offsetHeight) {
               if(!c.childNodes||c.childNodes.length<1) {
                var d=document.createElement('img');
                d.src='http://www.sprachlernspiele.de/scroll/up_normal.gif';
                d.style.cursor='pointer';
                d.style.marginLeft='5px';
                d.onmouseover=initUp;
                d.onmouseout=scrollStop;
                c.appendChild(d);
                d=document.createElement('br');
                c.appendChild(d);
                d=document.createElement('img');
                d.src='http://www.sprachlernspiele.de/scroll/down_normal.gif';
                d.style.cursor='pointer';
                d.style.marginLeft='5px';
                d.onmouseover=initDown;
                d.onmouseout=scrollStop;
                c.appendChild(d);
               }
                } else {
                with (c) {
                  for (i=0; firstChild; i++) {
                    removeChild(firstChild);
                  }
                }
             }
          }

          function initUp () {
           changePic(this);
           scrollUp();
          }

          function initDown () {
           changePic(this);
           scrollDown();
          }

          function changePic (pic) {
            if(pic.src.indexOf('up')>0) {
              if(pic.src.indexOf('normal')>0) {
                pic.src="http://www.sprachlernspiele.de/scroll/up_over.gif";
              } else {
                pic.src="http://www.sprachlernspiele.de/scroll/up_normal.gif";
              }
            } else {
              if(pic.src.indexOf('normal')>0) {
                pic.src="http://www.sprachlernspiele.de/scroll/down_over.gif";
              } else {
                pic.src="http://www.sprachlernspiele.de/scroll/down_normal.gif";
              }
            }
          }

          function scrollUp() {
            HauptFenster.scrollBy(0, -5);
            scr = window.setTimeout("scrollUp()",83);
          }

          function scrollDown() {
            HauptFenster.scrollBy(0, 5);
            scr = window.setTimeout("scrollDown()",83);
          }

          function scrollStop() {
            window.clearTimeout(scr);
            changePic(this);
          }
          //-->
          </script>

          PS: die bilderurls werden nachher noch geaendert, soll nur erstmal klappen =)

          1. Hallo MasterBene,

            tja der Scriptbereich sieht ja sehr bekannt aus. Müsste so stimmen. Übrgens: ich will mich nicht mit fremden Federn schmücken, das Skript ist zu einem großen Teil nicht auf meinem Mist gewachsen.

            http://forum.de.selfhtml.org/archiv/2004/8/t88464

            Ich gehe davon aus, dass du den onLoad-Eventhandler in jedes deiner im Iframe anzuzeigenden Dokumente eingebaut hast.

            Hast du aber auch dieses zunächst leere Div-Element hinter deinen Iframe eingebaut? Sonst kann es nicht funktionieren, denn da werden die Buttons ja später dynamisch ein- und ausgeblendet.

            <div id="link"></div>

            PS: die bilderurls werden nachher noch geaendert, soll nur erstmal klappen =)

            Du kannst sie gerne auch (modifiziert oder nicht) verwenden, nur solltest du die Buttons auch genauso benennen, da sie auch im Skript über Namensbestandteile identifiziert werden.

            Gruß Gernot

            1. Hallo Gernot,

              Vielen Dank fuer deine Hilfe, -> ES GEHT =)
              schoen dass es so kompetente/hilfsbereite Leute wie dich gibt, die ihr Wissen gerne weitergeben *schleim* ..
              MFG MB

              1. Vielen Dank fuer deine Hilfe, -> ES GEHT =)

                MasterBene,
                Auch wenn du die Lösung cool findest, es ist ergonomischer Unsinn.

                schoen dass es so kompetente/hilfsbereite Leute wie dich gibt, die ihr Wissen gerne weitergeben *schleim* ..

                Ich fürchte, das bezog sich nicht auf https://forum.selfhtml.org/?t=94716&m=573513?
                Gunnar

                --
                "Nobody wins unless everybody wins." (Bruce Springsteen)
        2. hi Gernot,
          alos irgentwetetwas mache ich total falsch,
          selbst wenn ich den source der gegebenen seite (http://www.sprachlernspiele.de/scroll/) abaendere funtzt es nicht =( ..
          hier mal der geaenderte code :

          <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
          <html>
          <head>
          <title>Scrollbuttons bei Bedarf</title>
          <script type="text/javascript">
          <!--
          function pruefe() {
             if(document.all&&!window.opera) {
               var a=document.all.detail;
               detail.document.body.scroll='no';
             } else {
               var a=document.getElementsByName('detail')[0];
               a.scrolling='no';
             }
             var b=detail.document.getElementById('cont');
             var c=document.getElementById('link');

          if(a.height<b.offsetHeight) {
               if(!c.childNodes||c.childNodes.length<1) {
                var d=document.createElement('img');
                d.src='http://www.sprachlernspiele.de/scroll/up_normal.gif';
                d.style.cursor='pointer';
                d.style.marginLeft='5px';
                d.onmouseover=initUp;
                d.onmouseout=scrollStop;
                c.appendChild(d);
                d=document.createElement('br');
                c.appendChild(d);
                d=document.createElement('img');
                d.src='http://www.sprachlernspiele.de/scroll/down_normal.gif';
                d.style.cursor='pointer';
                d.style.marginLeft='5px';
                d.onmouseover=initDown;
                d.onmouseout=scrollStop;
                c.appendChild(d);
               }
                } else {
                with (c) {
                  for (i=0; firstChild; i++) {
                    removeChild(firstChild);
                  }
                }
             }
          }

          function initUp () {
           changePic(this);
           scrollUp();
          }

          function initDown () {
           changePic(this);
           scrollDown();
          }

          function changePic (pic) {
            if(pic.src.indexOf('up')>0) {
              if(pic.src.indexOf('normal')>0) {
                pic.src="http://www.sprachlernspiele.de/scroll/up_over.gif";
              } else {
                pic.src="http://www.sprachlernspiele.de/scroll/up_normal.gif";
              }
            } else {
              if(pic.src.indexOf('normal')>0) {
                pic.src="http://www.sprachlernspiele.de/scroll/down_over.gif";
              } else {
                pic.src="http://www.sprachlernspiele.de/scroll/down_normal.gif";
              }
            }
          }

          function scrollUp() {
            detail.scrollBy(0, -5);
            scr = window.setTimeout("scrollUp()",83);
          }

          function scrollDown() {
            detail.scrollBy(0, 5);
            scr = window.setTimeout("scrollDown()",83);
          }

          function scrollStop() {
            window.clearTimeout(scr);
            changePic(this);
          }
          //-->
          </script>
          </head>
          <body bgcolor="#666666" vlink="FFFFFF" alink="FFFFFF" link="FFFFFF" >
          <div style="border:solid 1px;width:292px;height:240px;float:left">
            <iframe scrolling="auto" src="http://www.sprachlernspiele.de/scroll/voll.html" name="detail" frameborder="no" width="290" height="240">
              <p>can't show frames...</p>
            </iframe>

          </div>
          <div>&nbsp;<a href="http://www.sprachlernspiele.de/scroll/voll.html" target="detail">voll</a></div>
          <div>&nbsp;<a href="http://www.sprachlernspiele.de/scroll/leer.html" target="detail">leer</a></div><br>
          <div id="link"></div>

          </body>
          </html>

          PS: ich bin am verzweifeln ..

          1. Hallo MasterBene,

            PS: ich bin am verzweifeln ..

            So schlimm sind Scrollbalken aber auch wieder nicht!

            Gruß Gernot

            1. So schlimm sind Scrollbalken aber auch wieder nicht!

              ansichtzsache ;)..

              jedenfals wundert mich, dass es bei http://www.sprachlernspiele.de/scroll/ geht und bei mir (http://masterbene.milten.lima-city.de/MB87/scrolltest.html) nicht ,obwohl der code "genau" der selbe ist ...

              1. Hallo MasterBene,

                jedenfals wundert mich, dass es bei http://www.sprachlernspiele.de/scroll/ geht und bei mir (http://masterbene.milten.lima-city.de/MB87/scrolltest.html) nicht ,obwohl der code "genau" der selbe ist ...

                Nicht ganz;

                <a href="http://masterbene.milten.lima-city.de/MB87/warum.html" target="detail">voll</a>

                Mich wundert das außerdem nicht, denn domainübergreifend kannst du die zur Verfügung stehende Höhe des Iframes auf deiner Domain nicht mit der offsetHeight des eingebundenen Dokuments von meiner Domain miteinander abgleichen. Das ist aus gutem Grund verboten!

                Ich sehe jetzt auch; den gesamten Inhalt im Body-Element deines Iframe-Dokument musst du bei der vorliegenden Programmierung auch noch mit einem DIV-Element umschließen, dem du das id-Attribut 'cont' gibst. Und denke auch an den onLoad-Eventhandler in jedem einzubindenden Dokument, auch in deinem Dokument "warum.html", wenn du es im Iframe anzeigen willst.

                Da sehe ich derzeit weder diesen Handler noch das alles im Body umschließende DIV-Element mit der id="cont".

                Gruß Gernot

  2. ich habe ein hauptfenster un in dem hauptfenster ein iframe.
    da der scrollbalken im iframe ziemlich doof ausschaut, moechte ich den scrollblaken gegen zwei graphiken austauschen, bei welchen beim mouseover ein ereigniss ausgeloest wird, welches das frame scrolt.

    MasterBene,
    Denkbar schlechte Idee.

    1. Wie kommen dann Nutzer ohne JavaScript nach unten?
    2. Wie kommt man mit dem Mausrad nach unten?

    Lass dem Nutzer seinen Scrollbalken!

    Wenn dir das Layout nicht gefällt, verzichte auf iframe. Das wär sicher eine gute Idee.

    die graphicken befinden sich im hauptfenster.

    Ach hättest du doch die neue Rechtschreibung benutzt! ;-)
    Gunnar

    --
    "Nobody wins unless everybody wins." (Bruce Springsteen)
    1. Hallo Gunnar,

      Denkbar schlechte Idee.

      1. Wie kommen dann Nutzer ohne JavaScript nach unten?

      Daran ist aber schon gedacht bei meiner Variante!

      1. Wie kommt man mit dem Mausrad nach unten?

      Ich habe kein Mausrad, denke aber, dass es funktioneren wird! Vielleicht kannst du das aber mal testen.

      Lass dem Nutzer seinen Scrollbalken!

      Ich gebe ja zu, die Seite ist "tiefergelegt", die Geschwindigkeit des Scrollens kannst du nicht mehr selbst bestimmen.

      die graphicken befinden sich im hauptfenster.

      Ach hättest du doch die neue Rechtschreibung benutzt! ;-)

      Meinst du ~f***cken statt ~phicken? Letzteres ist eher was für verkopfte Akademiker.

      Gruß Gernot

      1. hi,

        1. Wie kommen dann Nutzer ohne JavaScript nach unten?

        Daran ist aber schon gedacht bei meiner Variante!

        IE 5.01, scripting aktiviert.
        weder scrollbalken, noch irgendeine möglichkeit, per JS zu scrollen.
        lediglich links zum tauschen der inhaltsmenge ("voll", "leer") vorhanden.

        1. Wie kommt man mit dem Mausrad nach unten?

        Ich habe kein Mausrad, denke aber, dass es funktioneren wird! Vielleicht kannst du das aber mal testen.

        ebenfalls nein - gibt ja nichts zu scrollen, text wird einfach abgeschnitten.

        gruß,
        wahsaga

        --
        "Look, that's why there's rules, understand? So that you _think_ before you break 'em."
        1. Hallo wahsaga,

          hi,

          1. Wie kommen dann Nutzer ohne JavaScript nach unten?

          Daran ist aber schon gedacht bei meiner Variante!

          IE 5.01, scripting aktiviert.
          weder scrollbalken, noch irgendeine möglichkeit, per JS zu scrollen.
          lediglich links zum tauschen der inhaltsmenge ("voll", "leer") vorhanden.

          das ist ja sehr seltsam, denn die verwendeten Eigenschaften und Methoden des Node-Objekts sollten doch nach dem entsprechenden Self-Artikel ebenso wie die Methode createElement() des Document-Objekts allesamt ab IE 5.X funktionieren.

          Liegt es möglicherweise an einer Untereigenschaft, etwa childNodes.length?

          Wenn dir etwas anderes am Quellcode auffällt, an dem es mit der Umsetzung für MSIE 5.01 hapern könnte, würde ich nach dieser Methode oder Eigenschaft als Bedingung zum Ausblenden der Scrollbars und einblenden der Buttons abfragen, ansonsten müsste man es wohl von einen Substring von navigator.appVersion und navigator.appName abhängig machen.

          Gruß Gernot