2010-05-04 36 views
2

我使用HTML框架在我的網站,它已經運行了我一段時間,我通常只使用Firefox上網,我的網站的外觀和功能正常,但今天,我突然發現IE8有一個問題,在我的網站的框架,如果我點擊頂層菜單項,它應該在框架的下半部分顯示內容,但它在Firefox中正確顯示,但在IE8中,它在框架的上半部分顯示內容並替換菜單項。爲什麼html框架在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,如果你想看到更多的細節。

弗蘭克

回答

2
<Body> 
<Center> 

<Base target=lower_frame> 

這是您的具體問題。 <base>只允許在<head>之內,不能作爲<body>的一部分。以前的IE版本讓你擺脫困境; IE8沒有。它忽略了錯位的基礎,因此留下了針對當前框架的鏈接。

你很可能有更多的奇怪的問題,不過,因爲你的標記是無效的各種真正的基本方式,超越了框架僅僅是不明智的。

+0

就在!就是這個 !修正了,謝謝! – Frank 2010-05-04 23:20:12

2

您可以強制IE8爲您HEAD行爲像IE7與此有關。

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

雖然這並不能解釋問題,但它通常是一個快速修復。

在IE8,按F-12的調試窗口。它可以幫助您在HTML中找到問題。查看您的網頁處於哪種文檔模式。如果處於「怪癖模式」,您遇到了麻煩。

什麼quoo說的是真的,重新考慮你的設計,而不使用框架。

alt text http://preview.moveable.com/jm/images/ie8.png

+0

要添加到這一點,我不知道你是否已經給IE8一個DOCTYPE(我注意到你沒有一個代碼樣本中上圖)。如果您的HTML頁面頂部沒有定義DOCTYPE,那麼您將在IE8中進入怪異模式,這會給您帶來一些問題。 - http://www.alistapart.com/articles/doctype/ – JasCav 2010-05-04 21:35:27

+0

感謝您的信息! – Frank 2010-05-04 23:20:45

2

你的HTML是無效的,而IE衆所周知絆倒在無效的HTML,引起奇怪的行爲。說實話,要弄清楚代碼中發生了什麼,因爲它非常不標準,這有點難。您應該熟悉html最佳實踐 - 與w3(w3.org)一樣,分隔列表是一個很好的資源(http://www.alistapart.com/),您可能會發現它們的驗證程序很有用(validator.w3.org)。首先,你的html標籤中的任何屬性都需要用引號引起來,而html標籤應該都是小寫字母。

此外,瞄準另一架,你的錨標記看起來應該<a href="myurl.html" target="_frameName" />

相關問題