torsten: interessantes problem mit IE und javascript entdeckt!

hi,

erstmal der code:
(inline.js)
<!--
 d = document;
 w = screen.width;
 h = screen.height;
 name = navigator.appName;
 version = parseInt(navigator.appVersion);
 d.write('<style type="text/css">');

if ( name == "Microsoft Internet Explorer" && version == 4 && navigator.appVersion.indexOf("MSIE 6.0") != -1 )
 {
   if (w == 800 && h == 600)
     d.write("body { background: url('background/ie/inline/inline_800_600.jpg'); background-attachment:fixed}");
   else if (w == 1024 && h == 768)
     d.write("body { background: url('background/ie/inline/inline_1024_768.jpg'); background-attachment:fixed }");
   else if (w == 1280 && h == 1024)
     d.write("body { background: url('background/ie/inline/inline_1280_1024.jpg'); background-attachment:fixed }");
 }
 else
  d.write("body { background: url('backgorund/ns/inline.png'); background-attachment:fixed }");

d.write('</style>');
//-->

(index.htm)
<a href="seite1.htm" target="iframe">seite1</a>
<a href="seite2.htm" target="iframe">seite2</a>
...
<iframe src="start.htm" name="iframe"></iframe>

(seite1.htm)
<head>
<title>seite1</title>
<script type="text/javascript" src="js/inline.js"></script>
</head>

nun mein problem:
mit javascript lade ich meine hindergründe für die seiten die im inline-frame geladen werden. wenn ich nun die entsprechenden verweise anclicke wird im IE einfach die seite in einem neuem fenster geöffned(eigentlich sollte sich die seite im inline-frame öffnen. beim netscape oder mozilla funktioniert es. warum nicht im IE? kann es sein das der IE mit javascript teilweiße nicht richtig zurecht kommt?

  1. achso, hab was vergessen:
    wenn ich <script type="text/javascript" src="js/inline.js"></script>
    entferne funktionierts auch im IE. bin aber darauf angewiesen. was kann ich tun?

  2. Hallo Torsten,

    ...
    <iframe src="start.htm" name="iframe"></iframe>

    benenne den Namen des iframes um. Also beispielsweise in

    <iframe src="start.htm" name="myIframe"></iframe>

    Das ist sehr unglücklich gewählt und könnte zu Problemen führen. Der eigentliche Fehler liegt aber hier:

    name = navigator.appName;

    name ist ein Synonym für: window.name

    sobald du diese Variable setzt, wird der eigentliche Fenstername umbenannt von iframe in navigator.appName.

    Abhilfe:

    myname = navigator.appName;

    Viele Grüße

    Antje

    1. vielen vielen dank Antje,
      du hast recht...

  3. erstmal der code:
    (inline.js)
    <!--

    wenn das wirklich eine JS Datei ist, hat der HTML hier nichts zu suchen und sollte einen Fehler erzeugen.

    d = document;
    w = screen.width;
    h = screen.height;

    das die Größe des Monitors nichts über die größe des Browserfenster aussagt ist dir bewußt?

    Ich persönlich habe in der Regel mit meinem 15" Monitor auf der Arbeit ein größeres Fenster als hier zu Hause mit einem 19 Monitor.

    struppi.

    1. leider hast du nicht all zu viel ahnung struppi.
      aber macht nichts, mir würde schon von andje sehr gut geholfen...

      1. leider hast du nicht all zu viel ahnung struppi.
        aber macht nichts, mir würde schon von andje sehr gut geholfen...

        Naja, besser als gar keine und Namen kannst du auch nicht richtig schreiben.

        Tatsächlich ist es so, das du im Javascript code die Zeichen '<!--' stehen hast, ich ging bisher davon aus, das dies ein Syntaxfehler ist, aber offensichtlich wird hier doch irgendwas gemacht, da dies ja alles Operatoren sind.
        Also solange du nicht den schließenden HTML Tag in dem Code hast kannst du es drin lassen (--> wirft einen Syntax fehler)

        Struppi.

        1. Naja, besser als gar keine und Namen kannst du auch nicht richtig schreiben.

          was würd ich nur ohne dich machen Struppi ???

          Tatsächlich ist es so, das du im Javascript code die Zeichen '<!--' stehen hast, ich ging bisher davon aus, das dies ein Syntaxfehler ist, aber offensichtlich wird hier doch irgendwas gemacht, da dies ja alles Operatoren sind.
          Also solange du nicht den schließenden HTML Tag in dem Code hast kannst du es drin lassen (--> wirft einen Syntax fehler)

          das war eigentlich nicht das problem !!!
          aber wie gesagt, mir wurde von antje (hey schau grad ma ob ich den namen jetzt richtig geschrieben habe) bestens geholfen...