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

請教這個js要如何修改才能達到W3C標準
https://forum.moztw.org/viewtopic.php?f=13&t=10183
1 頁 (共 1 頁)

發表人:  新手 [ 2005-08-26, 08:13 ]
文章主題 :  請教這個js要如何修改才能達到W3C標準

請教高手@@
這個是別人提供給我在Discuz論壇用的下拉選單
不過無法在firefox瀏覽器顯示
謝謝幫忙^^

代碼:
var h;
var l;
var t;
var isvisible;
function HideMenu()
{
var mX;
var mY;
var vDiv;
    if (isvisible == true)
{
        vDiv = document.all("menuDiv");
        mX = window.event.clientX + document.body.scrollLeft;
        mY = window.event.clientY + document.body.scrollTop;
        if ((mX < parseInt(vDiv.style.left)) || (mX > parseInt(vDiv.style.left)+vDiv.offsetWidth) || (mY < parseInt(vDiv.style.top)-h) || (mY > parseInt(vDiv.style.top)+vDiv.offsetHeight)){
            vDiv.style.visibility = "hidden";
            isvisible = false;
        }
    }
}

function ShowMenu(vMnuCode) {
    vSrc = window.event.srcElement;
    vMnuCode = "<DIV style='PADDING-RIGHT: 6px; FILTER: shadow(color=#5F5F5F,direction=120); PADDING-BOTTOM: 6px;width:98px'><table border=0 cellspacing=1 cellpadding=4 bgcolor=#76AE00 style='line-height:18px' width='98' align='left'><tr bgcolor='#FFFFFF'><td width=14 background=images/common/menubg.gif>&nbsp;</td><td>" + vMnuCode + "</td></tr></table></div>";
    h = vSrc.offsetHeight + 0;
    l = vSrc.offsetLeft + 0;
    t = vSrc.offsetTop + h;
    vParent = vSrc.offsetParent;
    while (vParent.tagName.toUpperCase() != "BODY")
    {
        l += vParent.offsetLeft;
        t += vParent.offsetTop;
        vParent = vParent.offsetParent;
    }

    menuDiv.innerHTML = vMnuCode;
    menuDiv.style.top = t;
    menuDiv.style.left = l;
    menuDiv.style.visibility = "visible";
    isvisible = true;
   
}

發表人:  yuanyuan [ 2005-12-09, 11:26 ]
文章主題 : 

主要原因在於, 它只用了給 IE 的語法 document.all, 所以在 FF 看不到. 建議加上 w3c dom 的標準寫法 document.getElementById("xxxx"),

還有幾個相關的也要做修正.
應該就沒問題了.

不過, 在 IE 和 FF 的解釋, 會稍有差異, 要注意的是差幾個 px 的問題要適度的做加減.

發表人:  kourge [ 2005-12-09, 11:50 ]
文章主題 : 

如果我沒記錯,Firefox 是支援 document.all,不過是用這種方法
情況一
假如 script 測 document.all 是否存在,Firefox 會說沒有(傳回 false)
如:
if (document.all) {
alert('IE');
}else if (!document.all){
alert('might be gecko');
}
這種時候會 alert 出 might be gecko

情況二
Script 很魯莽的直接用 document.all,這時候 Firefox 才支援
如:
var form = document.all('submit-mail');
配合
<form id="submit-mail">
</form>
應該就可以。

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