Frank Binöder: HTA und deaktiviertes JavaScript

Hallo,
weiß jemand ob und wie ich in einer HTA feststellen kann, ob im Browser bzw. in der HTA Javascript aktiviert ist?

Ich habe Javascript (Scripting im IE) deaktiviert. Wenn ich die HTA starte führt der IE alle Javascripts aus, beim Link auf die nächste Seite (innerhalb der HTA) funktioniert Javascript dann nicht mehr.

Ignoriert HTA die Sicherheitseinstellungen im Browser? Und wenn ja, warum dann nicht auf der nächsten aufgerufenen Seite?

Für Ideen wär ich echt dankbar!
Frank

  1. Guten Morgen Frank,

    mit HTA sprichst du ein Thema an, das mich auch schon beschäftigt hat.

    weiß jemand ob und wie ich in einer HTA feststellen kann, ob im Browser bzw. in der HTA Javascript aktiviert ist?

    Zunächst eine philosophische Gegenfrage: Willst du vielleicht mit einem Javascript feststellen, ob JS aktiviert ist? *g* Na also.
    Nee, im Ernst - da wüsste ich nur die althergebrachte Methode mit einem <NOSCRIPT>.

    Ich habe Javascript (Scripting im IE) deaktiviert. Wenn ich die HTA starte führt der IE alle Javascripts aus, beim Link auf die nächste Seite (innerhalb der HTA) funktioniert Javascript dann nicht mehr.

    Huch, das ist merkwürdig!

    Ignoriert HTA die Sicherheitseinstellungen im Browser? Und wenn ja, warum dann nicht auf der nächsten aufgerufenen Seite?

    Einige Sicherheitsmechanismen sind hier außer Kraft gesetzt, weil eine "Hypertext Application", kurz HTA, per Definition als vertrauenswürdig gilt. Zum Beispiel dürfen Skripte in einer HTA über Domaingrenzen hinweg zugreifen, was normalerweise nicht erlaubt ist. Das gilt sicher auch für ein paar andere "Features", wie z.B. das generelle Ausführen von Skripten unabhängig von der Einstellung. Aber leider hält sich M$ auch sehr bedeckt mit Informationen über HTA, so dass ich fürchte, wir sind hier auf Probieren angewiesen.
    Falls du aber noch mehr Info allgemeiner Art zum Thema HTA hast, wäre ich auch ein dankbarer Kandidat...  ;)

    Ansonsten alles Gute beim Weiterforschen...

    Martin

    1. Moin Martin,

      der NOSCRIPT Bereich wird auch bei abgeschaltetem JS von der HTA ignoriert. Die HTA öffnet mit Javascript die nächste Seite. Bei deaktiviertem JS sollte eigentlich der Text aus dem NOSCRIPT kommen und nicht die neue Seite.
      In der neuen Seite funktioniert dann kein JS mehr.

      Eigentlich benötige ich die HTA nur um gleich unbemerkt auf Vollbild zu schalten. Wir produzieren nämlich auf IE-Basis für eine CD-ROM. Läuft also nicht im Web.
      Die HTA öffnet mit WINDOWSTATE="maximize" im Fullscreen.

      Ohne HTA müßte ich eine "normale" Startseite laden und dann per window.open(...,"_blank", fullscreen="yes"..) eine neue Seite im Fullscreen laden und die alte Seite schließen. Da erscheint dann aber immer diese "Seite wirklich schließen?"-Meldung.

      Wenn ich in die "normale" Seite mit window.open(...,"_self",fullscreen="yes",..) eine neue lade,bräuchte ich kein Fenster schließen. Aber dann schaltet der Browser nicht in Fullscreen.

      Gibt für Fullscreen noch ne andere Variante im IE ab Version 5?

      So long
      Frank

      1. Hallo Frank,

        wie ist denn das mit der neuen Seite, die du öffnest?

        der NOSCRIPT Bereich wird auch bei abgeschaltetem JS von der HTA ignoriert. Die HTA öffnet mit Javascript die nächste Seite. Bei deaktiviertem JS sollte eigentlich der Text aus dem NOSCRIPT kommen und nicht die neue Seite.
        In der neuen Seite funktioniert dann kein JS mehr.

        Ist das auch eine *.hta oder eine "normale" *.htm? Wenn's eine normale HTML-Datei ist, wäre das beschriebene Verhalten "richtig" in dem Sinne, wie ich es vermutet hatte: In der HTA werden Skripte ungeachtet der sonstigen Einstellung ausgeführt, in der HTML-Datei dagegen nicht mehr.

        Gibt für Fullscreen noch ne andere Variante im IE ab Version 5?

        Hmm, ich weiß nicht... willst du vielleicht mal probieren, über window.resizeTo() und window.moveTo() das Fenster so hinzuschieben, dass Titelleiste, Menü, Rahmen etc. außerhalb des Bildschirms liegen? Da müsste man zwar ein bisschen mit den Fensterkoordinaten jonglieren, könnte aber funktionieren...

        Bye,
          Martin

        1. Hallo Martin,

          HTML-Seiten machen grundsätzlich kein Problem. Aber ich hab's gefunden:

          Der HTA ist es wurscht, ob JS aktiviert ist oder nicht. Alle Seiten, die in ihr selbst (_self) geöffnet werden funktionieren bestens (auch HTML). Auch mit deaktiviertem JS.

          Der Haken ist nur: unsere Mindestvoraussetzung ist IE 5.0 und höher. Kein Prob dachte ich mir, HTA geht ja ab V.5. Aber: es gibt eine Property, die funktioniert erst ab 5.5. Nämlich: NAVIGABLE="yes".
          Die ist Default:no und bewirkt das neue Seiten in der HTA und nicht in nem neuen Fenster geöffnet werden. IE 5 ignoriert das und öffnet dann mit _self einfach überhaupt keine neue Seite. Öffne ich die Seite in nem neuen Fenster, schwups, nix geht mehr.

          Wieso mußten die das auch erst ab 5.5 einbauen? Damit kann ich dann auf IE 5 nur eine einzige Seite in der HTA öffnen, oder was? Alle anderen landen in nem neuen Fenster? Das wär ja Mist.

          Das mit moveto und so muß ich auch noch lösen. Minimize, Windowed und Close soll nämlich auf der FullScreen-Seite auch funktionieren. Aber da mach schon allein beim Minimize das JS schon nicht mehr mit.
          <snif>

          Frank

          1. Hier ist die Lösung aller Probleme für IE 5.0 und höher:

            http://support.microsoft.com/default.aspx?scid=kb;en-us;274555

            Für 5.0:

            • die HTA muß zum Start ein Frameset haben mit appliction="yes".
            • alle Seiten müßen mit target="_top" in diesem Frameset aufgerufen werden.

            Für 5.5:

            • NAVIGABLE="yes" muß angegeben werden

            Folge:
            ab 5.0 öffnet alles im selben Fenster und JavaScript läuft auch, wenn es eigentlich abgeschaltet ist.

            :)
            Frank