MozTW 討論區
https://forum.moztw.org/

使用JavaScript製作的manu選單及其他特效無法正常使用
https://forum.moztw.org/viewtopic.php?f=2&t=7085
1 頁 (共 1 頁)

發表人:  brahe [ 2005-03-16, 15:06 ]
文章主題 :  使用JavaScript製作的manu選單及其他特效無法正常使用

在IE內可以正常顯示的一些使用JavaScript製作的manu選單及其他特效在FireFox下都無法正常使用,請問該如何解決。

例如以下的語法:
<div align="left">
<DIV onmousedown="fmenu1()" style="cursor:hand;"> <img src="demo.gif" width="20" height="20">網頁選單之一</DIV>
<TABLE id=menu1 style="display:none" border="0" width="100">
<TR>
<TD> <a href="demo.htm"><img src="count.gif" border="0" width="16" height="16">次選單一</a><BR>
<a href="demo.htm"><img src="count.gif" border="0" width="16" height="16">次選單二</a><BR>
<a href="demo.htm"><img src="count.gif" border="0" width="16" height="16">次選單三</a><BR>
</TD>
</TR>
</TABLE>
<DIV onmousedown="fmenu2()" style="cursor:hand;"> <img src="demo.gif" width="20" height="20">網頁選單之二</DIV>
<TABLE id=menu2 style="display:none" border="0" width="100">
<TR>
<TD> <a href="demo.htm"><img src="count.gif" border="0" width="16" height="16">次選單一</a><BR>
<a href="demo.htm"><img src="count.gif" border="0" width="16" height="16">次選單二</a><BR>
<a href="demo.htm"><img src="count.gif" border="0" width="16" height="16">次選單三</a><BR>
</TD>
</TR>
</TABLE>
<SCRIPT language="JavaScript">
function fmenu1(){
if( menu1.style.display == "none")
menu1.style.display = "block";
else
menu1.style.display = "none";}
function fmenu2(){
if( menu2.style.display == "none")
menu2.style.display = "block";
else
menu2.style.display = "none";}
</SCRIPT>

發表人:  xacid [ 2005-03-16, 20:28 ]
文章主題 : 

這樣如何:
brahe 寫:
function fmenu1(){
menu1=document.getElementById("menu1");
if( menu1.style.display == "none")
menu1.style.display = "block";
else
menu1.style.display = "none";}
function fmenu2(){
menu2=document.getElementById("menu2");
if( menu2.style.display == "none")
menu2.style.display = "block";
else
menu2.style.display = "none";}

發表人:  brahe [ 2005-03-17, 08:03 ]
文章主題 : 

不是語法的問題,而是很多網頁都有這種manu,無法使用。



xacid 寫:
這樣如何:
brahe 寫:
function fmenu1(){
menu1=document.getElementById("menu1");
if( menu1.style.display == "none")
menu1.style.display = "block";
else
menu1.style.display = "none";}
function fmenu2(){
menu2=document.getElementById("menu2");
if( menu2.style.display == "none")
menu2.style.display = "block";
else
menu2.style.display = "none
";}

發表人:  BobChao [ 2005-03-17, 12:00 ]
文章主題 : 

brahe 寫:
不是語法的問題,而是很多網頁都有這種manu,無法使用。

語法的問題,我們也有遇過一大堆 Firefox 可以用但 IE 失敗的例子,所以你要問「跟很多其他的效果」時,我想我們沒辦法回答你:「很多」是哪些?可以給個網址來嗎?

發表人:  brahe [ 2005-03-17, 15:10 ]
文章主題 : 

感謝您的回覆,因常上網站,所以偶遇無法使用的manu,其實
也沒什麼特別的。

發表人:  vsy [ 2005-03-17, 21:09 ]
文章主題 : 

主要的問題在於這裡(節錄自BobChao 譯,問題網頁與技術傳教
引言回覆:
Q:JavaScript 沒用!為何會這樣?

有些 document 物件的屬性如 document.all 與 document.layers 並非 W3C DOM 標準的一份子。Mozilla 不支援它們,請改用 document.getElementById() 方法

此外,某些老舊的瀏覽器偵測程式(client sniffer)會將新瀏覽器排除在外。公用 API(W3C DOM)的目的在於互通(interoperability),再額外偵測出不支援此公用 API 的特定瀏覽器。當使用 DOM 時,最好先檢查一下你想用的物件及方法。舉例而言,你可以用如下方式檢查瀏覽器是否支援 document.getElementById():

代碼:
if(document.getElementById) {
/* 在此放置支援 document.getElementById() 時所要執行的�{式碼 */
}

發表人:  BobChao [ 2005-03-17, 22:45 ]
文章主題 : 

vsy 寫:
主要的問題在於這裡(節錄自BobChao 譯,問題網頁與技術傳教
引言回覆:
Q:JavaScript 沒用!為何會這樣?

有些 document 物件的屬性如 document.all 與 document.layers 並非 W3C DOM 標準的一份子。Mozilla 不支援它們,請改用 document.getElementById() 方法

此外,某些老舊的瀏覽器偵測程式(client sniffer)會將新瀏覽器排除在外。公用 API(W3C DOM)的目的在於互通(interoperability),再額外偵測出不支援此公用 API 的特定瀏覽器。當使用 DOM 時,最好先檢查一下你想用的物件及方法。舉例而言,你可以用如下方式檢查瀏覽器是否支援 document.getElementById():

代碼:
if(document.getElementById) {
/* 在此放置支援 document.getElementById() 時所要執行的�{式碼 */
}


吾... 這才發現這邊要更新一下...
Mozilla 跟 Firefox 已經開始支援 document.all 了,不過由於 IE 是封閉軟體,所以不可能做到一模一樣。此外由於不鼓勵非標準寫法(也為了相容舊的瀏覽器判別程式),所以如果用 if (document.all) 來判斷,還是會傳回 false。

1 頁 (共 1 頁) 所有顯示的時間為 UTC + 8 小時
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/