作者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