作者PICASSO1 (Pablo Picasso G.)
看板Ajax
标题[ JS ]JavaScript + 状态列的问题??
时间Sun Jan 20 21:34:02 2008
最近在练习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
1F:→ PICASSO1:哈~~~~找到原因了!! 01/20 21:50
2F:→ PICASSO1:在function内不要return; 改在OnMouseOver="ChangePic(PI 01/20 21:56
3F:→ PICASSO1:C, 1); return true; "这样子就OK了!! 01/20 21:57