Почему html-фрейм ведет себя по-разному в Firefox и IE8? - PullRequest
2 голосов
/ 05 мая 2010

Я использую HTML-фрейм на своем веб-сайте, он работает для меня, в то время как обычно я использую только Firefox для работы в сети, мой сайт выглядит и функционирует нормально, но сегодня я неожиданно обнаружил, что IE8 имеет проблему с фреймом на моем сайте Если я нажимаю на верхние пункты меню, он должен отображать контент в нижней части фрейма, он делает это правильно в Firefox, но в IE8 он отображает контент в верхней части фрейма и заменяет меню. товар.

Чтобы дать больше подробностей, я добавлю упрощенную версию моих HTML-страниц, на верхнем уровне есть два элемента, страница index.html и каталог файлов, все страницы, кроме index.html, в каталоге, так это выглядит так:

index.html
Dir_Docs
  00_Home.html
  00_Install_Java.html
  00_Top_Menu.html
  01_Home_Menu.html
  01_Install_Java_Menu.html
  10_Home_Welcome.html
  10_How_To_Install_Java.html

[ index.html ]
<Html>
  <Head><Title>Java Applications : Tv_Panel, Java_Sound, Biz Manager and Web Academy</Title></Head>

<Frameset Rows="36,*" Border=5 Bordercolor=#006B9F>
  <Frame Src=Dir_Docs/00_Top_Menu.html Frameborder=YES Scrolling=no Marginheight=1 Marginwidth=1>
  <Frame Src=Dir_Docs/00_Home.html Name=lower_frame Marginheight=1 Marginwidth=1>
</Frameset>
</Html>

[ 00_Home.html ]
<Html>
  <Head><Title>NMJava Application Development</Title></Head>

  <Frameset Cols="217,*" Align=center BorderColor="#006B9F">
    <Frame Src=01_Home_Menu.html Frameborder=YES Name=side_menu Marginheight=1 Marginwidth=1>
    <Frame Src=10_Home_Welcome.html Name=content Marginheight=1 Marginwidth=1>
  </Frameset>
</Html>

[ 00_Install_Java.html ]
<Html>
  <Head>
    <Title>Install Java</Title>
</Head>

  <Frameset Cols="217,*" Align=center BorderColor="#006B9F">
    <Frame Src=01_Install_Java_Menu.html Frameborder=YES Name=side_menu Marginheight=1 Marginwidth=1>
    <Frame Src=10_How_To_Install_Java.html Name=content Marginheight=1 Marginwidth=1>
  </Frameset>
</Html>

[ 00_Top_Menu.html ]
<Html>
  <Head>Top Menu</Head>
<Body>
<Center>

<Base target=lower_frame>

<Table Border=1 Cellpadding=3 Width=100%>
  <Tr>
    <Td Align=Center Bgcolor=#3366FF><A Href=00_Home.html><Font Size=4 Color=White>Home</Font></A></Td>
    <Td Align=Center Bgcolor=#3366FF><A Href=00_Install_Java.html><Font Size=4 Color=White>Install Java</Font></A></Td>
  </Tr>
</Table>

</Center>

</Body>
</Html>

[ 01_Home_Menu.html ]
<Html>
  <Head><Title>Home Menu</Title></Head>

<Base Target=content>
<Body Bgcolor=#7799DD>
  <Center>
    <Table Border=1 Width=100%>
      <Tr><Td Align=center Bgcolor=#66AAFF><A Href=10_Home_Welcome.html>Welcome</A></Td></Tr>
    </Table>
  </Center>
</Body>

</Html>

[ 01_Install_Java_Menu.html ]
<Html>
  <Head><Title>Install Java</Title></Head>

<Base Target=content>
<Body Bgcolor=#7799DD>
  <Center>
    <Table Border=1 Width=100%>
      <Tr><Td Align=Center Bgcolor=#66AAFF><A Href=10_How_To_Install_Java.html>How To Install Java ?</A></Td></Tr>
    </Table>
  </Center>
</Body>

</Html>

[ 10_Home_Welcome.html ]
<Html>
  <Head><Title>NMJava For Software Development</Title></Head>
<Body>

<Center>
  <P>
  <Font Size=5 Color=blue>Welcome To NMJava For Software Development</Font>
  <P>

</Center>
</Body>
</Html>

[ 10_How_To_Install_Java.html ]
<Html>
  <Head>
    <Title>Install Java</Title>
  </Head>

  <Body>
    <Center>

    <Br>
    <Font Size=5 Color=#0022AE><A Href=http://java.com/en/download/index.jsp>How To Install Java ?</A></Font>
    <Br>
    <P>
    <Table Width=90% Cellspacing=5 Cellpadding=5>
      <Tr><Td><Font Color=#0022AE>
        You need JRE 6 (Java Runtime Environment) to run the programs on this site. You may or may not have Java already installed on your PC, you can find out by going to the following 
site, if you don't have the latest version, you can install/upgrade it, it's free from Sun/Oracle at :<Font Size=4> <A Href=http://java.com/en/download/index.jsp>http://java.com/en/download/index.jsp</A></Font>.<P>
      </Font></Td></Tr>
    </Table>
    </Center>

  </Body>
</Html>

Что с ними не так, почему два браузера ведут себя по-разному, и как это исправить?

Мой сайт: http://nmjava.com, на случай, если вы хотите увидеть более подробную информацию.

Frank

Ответы [ 3 ]

2 голосов
/ 05 мая 2010

Ваш HTML-код недействителен, и IE, как известно, срабатывает из-за недопустимого html, вызывая странное поведение. И, честно говоря, немного сложно понять, что происходит в вашем коде, поскольку он настолько нестандартен. Вам следует ознакомиться с лучшими практиками в области html - хороший список ресурсов (http://www.alistapart.com/), как и w3 (w3.org)), и вы можете найти их валидатор полезным (validator.w3.org). все атрибуты в ваших HTML-тегах должны быть в кавычках, а все HTML-теги должны быть строчными.

Кроме того, для нацеливания на другой кадр ваш тег привязки должен выглядеть так: <a href="myurl.html" target="_frameName" />

2 голосов
/ 05 мая 2010
<Body>
<Center>

<Base target=lower_frame>

Это ваша конкретная проблема. <base> допускается только внутри <head>, а не как часть <body>. Предыдущие версии IE позволили вам избежать неприятностей; IE8 нет. Он игнорирует misplaced-base и оставляет ссылки, нацеленные на текущий кадр.

Вполне вероятно, что у вас возникнут более странные проблемы, поскольку ваша разметка недопустима множеством действительно простых способов, за исключением того, что кадры просто нежелательны.

2 голосов
/ 05 мая 2010

Вы можете заставить IE8 вести себя как IE7 с этим в вашем HEAD.

<meta http-equiv="X-UA-Compatible" content="IE=7" />

Хотя это не объясняет проблему, часто это быстрое решение.

В IE8 нажмите F-12 для окна отладки. Это может помочь вам найти проблему в вашем HTML. Посмотрите, в каком режиме документа находится ваша страница. Если вы находитесь в «режиме причуд», у вас проблемы.

То, что Quoo говорит, правда, переосмыслите свой дизайн без использования рамок.

альтернативный текст http://preview.moveable.com/jm/images/ie8.png

...