作者HuangJC (吹笛牧童)
看板Ajax
標題[問題] 請問相容性問題( prototype )
時間Mon Jul 20 12:49:38 2009
很簡單的程式,只有相依於 prototype
沒其他外部需求
<script type="text/javascript" src="prototype.js"></script>
<table>
<tr id='e1' class='test'>
<td>
e1
</td>
</tr>
<tr id='e2' class='test'>
<td>
e2
</td>
</tr>
<tr id='e3' class='test'>
<td>
e3
</td>
</tr>
</table>
<script type="text/javascript">
onload = function () {
all = $$('.test');
[e1,e2,e3].invoke('hide');
// 這一句在 IE 會失敗,但我在主控台慢慢手動執行,可以成功,可重製
}
</script>
如上,我用 chrome 測 OK,用 IE 測失敗
目前對相容性還沒多少 debug 經驗,只能為了 schdule 趕快迴避
但我奇怪的是,這麼簡單的東西為什麼 IE 就不行了呢?
而且也不是'一定不行'喔!
我還是可以慢慢執行到它行
照這樣我會很害怕使用一些元件庫,風險很大
同事說 JS 少用,盡量在 Server 端以標準的 PHP/HTML 完成;不然很難 DEBUG
但他自己也用得不少
看起來很反諷(這不就是無法自拔?)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.219.65.16
※ 編輯: HuangJC 來自: 61.219.65.16 (07/20 12:50)
1F:推 TonyQ:js有不得不用的時候 :p 應該是說在設計上盡量避免吧 07/20 13:09
2F:→ HuangJC:我知道這意思,只是知道也拿捏不出最好的線,花很多時間 07/20 13:14
3F:→ HuangJC:今天這道指令如果'確定不相容於 IE',那我就不用了 07/20 13:14
4F:→ HuangJC:但我碰到'不確定';我會以為是我自己寫錯;PO出來的 sample 07/20 13:14
5F:→ HuangJC:已經很短,縮小問題範圍;我在 DEBUG 的程式可大了.. 07/20 13:15
6F:→ TonyQ:老實說你的sample 一看就覺得簡寫到一個錯誤的程度 XD 07/20 13:15
7F:→ TonyQ:e1 ,e2 ,e3 很顯然是 undefined :p 07/20 13:16
8F:→ TonyQ:再說 , error 都有 error msg , 先學會看錯誤訊息吧... 07/20 13:16
9F:→ TonyQ:js 不容易 debug 沒錯 , 不過還是有技巧的 . XD 07/20 13:17
10F:→ HuangJC:錯誤訊息沒說 undefine;不然你改 $('e1') 也可以,問題一樣 07/20 13:17
11F:→ TonyQ:錯誤訊息只是個起點 . 你寫一篇關於js debug的文章 , 但是連 07/20 13:19
12F:→ TonyQ:error msg 都沒提 , 你根本就還沒站在起跑線上. :3 加油 07/20 13:20
13F:→ TonyQ:先學走路再來學飛吧 07/20 13:20
14F:→ HuangJC:等下再修文;改 $('e1') 會OK了,很混亂呀 *_* 07/20 13:20
15F:→ TonyQ:你大概碰到page cache了 , 偶爾要記得ctrl+f5 . XD 07/20 13:21
16F:→ TonyQ:這種事情裡面太多眉角 不是很單純一個地方兩個地方 , 07/20 13:23
17F:→ TonyQ:很多可能性都有 , 複雜歸複雜 , 但是那是因為一開始設定的 07/20 13:23
18F:→ TonyQ:目標就太遠 , 很多server side很簡單的事情到client side因y 07/20 13:23
19F:→ TonyQ:為多了流程控制外加容器概念 , 就讓事情變得很複雜 , 沒有 07/20 13:24
20F:→ TonyQ:那麼單純 , 但是設計者卻沒辦法接受這種轉變 , 才會產生 js 07/20 13:24
21F:→ TonyQ:很難的假象 , 這是我的看法 . 07/20 13:24
22F:→ TonyQ:html 也是有層級 , 但是有些人在設計html時沒有層級觀念. 07/20 13:25
23F:→ HuangJC:什麼叫層級?你說 cache 的問題嗎? 07/20 13:32
24F:→ TonyQ:層級說的是js中蠻多人一進來會搞不懂的dom 元素跟容器.. 07/20 13:33
25F:→ TonyQ:cache的事情只有在第一行 , 後面說得都是有關相容性、debug 07/20 13:34
26F:→ HuangJC:也就是 e1 不等同於 $('e1') 的意思嗎? 07/20 13:36
※ 編輯: HuangJC 來自: 61.219.65.16 (07/20 13:37)
27F:→ HuangJC:..出現了,如果我認為 e1 的寫法是錯的,現在卻一直成功 07/20 13:46
28F:→ HuangJC:現在猛按 ctrl-f5 中 *_*,這樣我會找不到問題,嘖.. 07/20 13:46
29F:→ HuangJC:..不知道要修文還是用回文,每一板的板風不同 ~^_^~ 07/20 13:49
30F:→ TonyQ:隨性 沒差 XD 這裡很free 07/20 13:50
31F:→ HuangJC:可我這是作業文耶 XD 07/20 13:52
32F:→ HuangJC:好啦,我再整理一篇 07/20 13:52
33F:推 huge:IE是哪個版本?.. 07/22 01:33
34F:→ HuangJC:8.0 07/22 01:52