Michael: Netscape-bug: resize

hallo leute!

altes problem: beim fenster-resize einer anwendung im netscape-browser springt er mir auf die startseite

meine lösung: die standardlösung (javascript mit reload-funktion/window.resize/window.innerHeight.... die u. a. auch unter selfhtml publiziert wird http://www.teamone.de/selfhtml/sfausles/tsfa_tcc.htm#a2 )
das fenster setzt sich aus einigen verschiedenen asp-files zusammen (frameset), wobei ich auf jeder seite das script eingefügt habe.

trotz richtiger implementierung hat er immer noch das gleiche problem!

obwohl es ein altes problem ist welches wohl schon öfters angesprochen wurde, hoffe ich auf eine lösungsidee oder -verweis!

DANKE

michael

  1. HAllo Michael,
    folgendes script wird von Dreamweaver eingebaut:
    <script language="JavaScript">
    <!--
    function MM_reloadPage(init) {  //reloads the window if Nav4 resized
      if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
        document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
      else if (innerWidth!=document.MM_pgW innerHeight!=document.MM_pgH) location.reload();
    }
    MM_reloadPage(true);
    // -->
    </script>
    infos dazu gibt es bei: http://www.dreamworker.de
    Gruss
    Christian

    1. danke für den post, christian!

      ich habe gerade festgestellt, dass es daran liegt, dass ich mit frames arbeite und die startseite der anwendung (bestehend aus frameset) die einzige URL ist, die in der history gespeichert wird.

      die navigation geschieht mittels javascript und ASP-redirect. die url bleibt dann wohl immer gleich. also bringt mir das lösungs-skript bzgl. "resize" und go.history(0) hier nichts, da dann immer die startseite neu geladen wird.

      die frage ist nur, ob es nicht trotzdem irgendwie geht. ich muss irgendwie die url stetig aktualisieren...

      neue ideen???

      DANKE

      michael

      1. hallo michael

        die frage ist nur, ob es nicht trotzdem irgendwie geht. ich muss irgendwie die url stetig aktualisieren...

        wenn du den ns401 abfängst geht es eventuell über <body onResize="location.reload()">
        das dumme ist nur das die älteren ns da anfangen zu spinnen, müßte du dann abtesten ab wann das zuverlässig läuft oder hoffen das bio dir das sagen kann.

        cioa stefan

        1. hallo michael

          die frage ist nur, ob es nicht trotzdem irgendwie geht. ich muss irgendwie die url stetig aktualisieren...

          wenn du den ns401 abfängst geht es eventuell über <body onResize="location.reload()">
          das dumme ist nur das die älteren ns da anfangen zu spinnen, müßte du dann abtesten ab wann das zuverlässig läuft oder hoffen das bio dir das sagen kann.

          cioa stefan

          danke, aber klappt auch nicht.

          auch ein "normales" aktualisieren mittels browser leitet mich zur startseite. das aktuelle historyelemmt ändert sich halt nicht, bleibt immer auf dem übergeordneten frameset.

          tja, so siehts irgenwie schlecht aus mit einer lösung.
          hat vielleicht doch noch eier eine idee???

          *seufz*

          Michael

    2. Hallo Christan!

      folgendes script wird von Dreamweaver eingebaut:
      <script language="JavaScript">
      <!--
      function MM_reloadPage(init) {  //reloads the window if Nav4 resized
        if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
          document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
        else if (innerWidth!=document.MM_pgW innerHeight!=document.MM_pgH) location.reload();
      }
      MM_reloadPage(true);
      // -->
      </script>

      Der Script macht genau das selbe wie der da unten, mit dem Unterscheid, daß Dreamweaver seien propietären Code dazu verwendet.

      /**
      * resize.js 0.3 970811
      * by gary smith
      * js component for "reloading page onResize"
      */

      if(!window.saveInnerWidth) {
        window.onresize = resize;
        window.saveInnerWidth = window.innerWidth;
        window.saveInnerHeight = window.innerHeight;
      }

      function resize() {
          if (saveInnerWidth < window.innerWidth
              saveInnerWidth > window.innerWidth
              saveInnerHeight > window.innerHeight
              saveInnerHeight < window.innerHeight )
          {
              window.history.go(0);
          }
      }

      Grüße
      Thomas