為了讓我寫的javascript菜單控制項程式不被下拉式清單控制項蓋住,我對原程式作了修改。程式做好了,但是用的時候才發現,有時候菜單顯示不出來,有時候又可以。對於同一個顯示菜單的html網頁,我直接雙擊開啟可以顯示菜單,但通過IIS映射虛擬目錄的地址開啟又顯示不出來,然後從另一台機上開啟這個地址訪問又能顯示!!!
我已經把網頁暫上傳到這個地址: http://gf.yf163.com/tmp/js/menu_xp.htm 我現在用我的電腦訪問開啟是顯示不出菜單的,但是在我同事的另一台電腦訪問是能看到的。各位幫我看一下能不能顯示菜單,並麻煩在後面留言告訴我一聲,謝謝!
我對程式進行跟蹤調試了半天,終於發現問題竟然是超乎我想象的奇怪!!菜單程式(alai_menu_xp.js)的第161和162行的代碼:
m.style.pixelLeft=x;
m.style.pixelTop=y;
這很容易理解,是用來作菜單定位的,但問題竟然是出在這個地方。我在這段代碼的前面和後面各加入一行代碼:alert(m.body.outerHTML)? ,這是用來顯示產生的菜單的HTML代碼的,你可以想象除了top和left屬性的改變外其輸出的代碼應該都一樣。實際上,如果測試的時候能顯示的話,結果就是這樣的。如果不顯示的話,前面顯示的就是預期的HTML代碼,但是經過這兩個屬性的更改後HTML代碼就無緣無故地變了,這是我一某次測試顯示的結果:
<DIV style="Z-INDEX: 33; LEFT: -200px; VISIBILITY: hidden; WIDTH: 200px; COLOR: black; POSITION: absolute; TOP: 35px; BACKGROUND-COLOR: white"></DIV>
看菜單的內容就這樣莫名其妙地在這兩行代碼之後丟了!!!!!!
昏倒!!!!!!!!
舊的菜單程式(除了會被下拉式清單蓋,很好用啊)請訪問 http://www.9499.net?go=tc
新程式(臨時的)? http://gf.yf163.com/tmp/js/alai_menu_xp.js