[ JS ]JavaScript + 狀態列的問題??

看板Ajax作者 (Pablo Picasso G.)時間17年前 (2008/01/20 21:34), 編輯推噓0(003)
留言3則, 1人參與, 最新討論串1/1
最近在練習JavaScript狀態列的問題,我先PO出一段正常的code,再闡述我的問題: // Browser: FireFox // Main.HTML <html> <head> <title>Chapter 4 範例!!</title> <script language="JavaScript" src="JS.js"> <!-- PIC1 = new Image(); PIC1.src = "PIC1.gif"; PIC2 = new Image(); PIC2.src = "PIC2.gif"; //--> </script> </head> <body bgcolor="#B1CBE1"> <center> <table border=1 width=60%> <tr> <td rowspan=2 width=141 height=135><img name="PIC" src="PIC1.gif" width=141 height=135></td> <td><center><a href="http://tw.yahoo.com/" OnMouseOver="window.status = 'Yahoo! '; ChangePic('PIC1.gif'); return true; " OnMouseOut="ClearStatus(); ">Yahoo!</a></center></td> </tr> <tr> <td><center><a href="http://www.google.com.tw/" OnMouseOver="window.status = 'Google '; ChangePic('PIC2.gif'); return true; " OnMouseOut="ClearStatus(); ">Google</a></center></td> </tr> </table> </center> </body> </html> // JS.js function ChangePic(GIF) { document.PIC.src = GIF; return; } function ClearStatus() { window.status = ""; return true; } 為了閱讀方便,我把*.HTML檔裡關鍵的兩行及*.JS檔裡的文件用Ultra Edit的顏色標示出 來。我想把更換圖檔和狀態列的功能寫在同一個function,於是我這樣改: function ChangePic(GIF, RET) { document.PIC.src = GIF; if(RET == 1) { window.status = "Yahoo! "; // alert(RET); return true; } else { window.status = "Google "; // alert(RET); return true; } } ....OnMouseOver = "ChangePic(PIC1, 1); ".... ....OnMouseOver = "ChangePic(PIC2, 2); ".... 我發現這樣不行,圖檔是會換,但狀態列還是不會更改;但把window.status放在OnMouse Over之後反而可以。當然,要做出正常的code是可以,但我想知道為何物件的屬性放在 function內就不行?? 而且,我為了確認是否有跑到if else裡面,我還特地加上兩行alert()的測試,發現alert 確實會跑出1和2,但也只有在談出警告視窗時,狀態列會瞬間顯示Yahoo!和Google,一把 alert()註解起來,又變成不會了!! 而且我覺得window.status的功能似乎並不是很實用,因為要在FireFox中先選「工具」> 「選項」>「內容」> 啟用JavaScript功能的「進階」,把「改變狀態列文字(C)」的功能 打勾,才看得到這個效果,我剛開始照書上的範例打也是試不出來,後來Google一下才知 道這個方法;問題是FireFox在安裝好時這個功能是unchecked的,萬一遇到一般的User而 設計師有做這樣的功能時,豈不是看不到這個效果?? -- 我幫你剝。 哇~你人真好,好體貼 ◥◣ 快點嘛~我要把你剝光~ˇ ˋ◢██◣ ˋ◢██◣ ◢◤ ◣◢██◣ ˋ◢██◣ ◤◤◤◥ ◤◤◥ ◥◣ ◤◥◥◥ ◤◤◥█ ● ● ◢◤ ≧ ≦ 討厭! ██ "" ▃"█◤ ◥◣ ◥█"▼ 你好壞喔! ε"█◤ \ ◢█ █◣ ◢◤脫~ \ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.120.118.180

01/20 21:50, , 1F
哈~~~~找到原因了!!
01/20 21:50, 1F

01/20 21:56, , 2F
在function內不要return; 改在OnMouseOver="ChangePic(PI
01/20 21:56, 2F

01/20 21:57, , 3F
C, 1); return true; "這樣子就OK了!!
01/20 21:57, 3F
文章代碼(AID): #17aqtEgt (Ajax)
文章代碼(AID): #17aqtEgt (Ajax)