簡體   English   中英

為什么HTML框架在Firefox和IE8中表現不同?

[英]Why html frame behave differently in Firefox and IE8?

我在Webiste上使用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 ,以防您想了解更多詳細信息。

坦率

您可以在HEAD強制IE8像IE7那樣運行。

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

盡管這不能解釋問題,但通常可以快速解決。

在IE8中,按F-12進入調試窗口。 它可以幫助您在HTML中找到問題。 查看頁面所處的文檔模式。如果頁面處於“怪異模式”,則很麻煩。

Quoo所說的是真的,請重新考慮您的設計而不使用框架。

替代文字
(來源: moveable.com

您的HTML無效,並且已知IE會在無效html上跳閘,從而導致奇怪的行為。 老實說,由於它是非標准的,因此很難弄清代碼中發生了什么。 您應該熟悉html最佳實踐-與w3(w3.org)一樣,單獨列出列表是一個不錯的資源( http://www.alistapart.com/ ),並且您可能會發現其驗證器有用(validator.w3.org) 。 首先,您的html標記中的所有屬性都必須用引號引起來,並且html標記都應全部小寫。

另外,要定位到另一幀,您的錨標記應類似於<a href="myurl.html" target="_frameName" />

<Body>
<Center>

<Base target=lower_frame>

那是你的具體問題。 <base>僅允許在<head>內部使用,而不能作為<body>一部分使用。 IE的早期版本讓您擺脫它; IE8沒有。 它忽略了放錯位置的基准,因此使鏈接指向當前幀。

但是,您可能會遇到更多奇怪的問題,因為您的標記在許多真正基本的方式上都是無效的,除了框架不建議使用之外。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM