作者TonyQ (沉默是金。)
看板Ajax
标题Re: [问题] javascript载入问题 有时候会失效
时间Sun Feb 13 07:09:37 2011
※ 引述《Numino (神圣光芒)》之铭言:
: ※ 引述《coldollsheep (加油加油^^)》之铭言:
: : 请大大帮忙看一下 谢谢
: 把开始的 $(document).ready(function(){....})
: 改成 document.onready=function(){
: ...
: }();
: 可以确保载入完成後执行
等等,差点被你唬了,orz
这年头都流行乱写然後拿来唬人吗........
这是我这个月第三次看到有人写错 function assign 了...
你有没有想过你的 document.onready 到底吃到什麽啊 -_-#
(提示 , 他吃到 undefined .)
<script>
document.onready=function(){
alert("ready");
}();
</script>
<script>
alert("hi");
</script>
你可以解释一下为什麽用你的写法,
底下那个alert("hi") 还在 alert("ready") 之後出现吗,
如果是「载入完成後」执行的话,这个行为显然是不对的。
http://jsfiddle.net/Vc5kV/
用 jQuery 的写法则是 hi 在前 alert在後喔。
http://jsfiddle.net/Vc5kV/1/
-----------------------------------
如果真的要用纯 JS bind ready event 的话, (不考虑iframe/ajax ready)
可以参考 jQuery source
//Mozilla, Opera and webkit
window.addEventListener( "load", function(){}, false );
//for IE
window.attachEvent( "onload", function(){} );
我完全同意会 javascript 的确会很有帮助,不过还有需要学习的地方...
至少在纯 js bind event ,
个人并不建议用 addEventListener/attachEvent以外的方式。
另外我觉得原po的问题之前看过他页面,
应该是cache 或什麽的其他问题可能性比较高。
我记得之前看他script tag 写在前面,invoker 也没什麽问题,
也没有 defer attribute ,应该很ok才对。
当然现在页面打不开所以也不知道到底什麽回事。
但我觉得有碰到那个 error ,
就该从那个 error 具体的时间点跟生命周期去找,不要隔空乱抓药......-_-#
--
网页上拉近距离的帮手 实现 GMail丰富应用的功臣
数也数不清的友善使用者体验 这就是javascript
欢迎同好到 AJAX 板一同讨论。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 72.21.245.243
※ 编辑: TonyQ 来自: 72.21.245.243 (02/13 07:10)
2F:→ TonyQ:JS 的function 模型不难懂啊...算了 开一篇文章来讲好了 02/13 07:11
3F:推 s25g5d4:我当时就在想这个问题 不过不敢提出来@@" 02/13 09:33
4F:→ s25g5d4:那篇我也有回文耶...XD 02/13 09:34
5F:推 s25g5d4:我在想要不要包装一个绑定事件的function 而且有存已经绑 02/13 09:39
6F:→ s25g5d4:上去的东西 不过要怎麽存进去取出来是个问题@@" 02/13 09:39
7F:→ s25g5d4:addEvnetListener跟attchEvent都不能存取已经绑上的方法 02/13 09:40
8F:→ s25g5d4:要移除有点麻烦 虽然只是多注册一个function 而已..XD 02/13 09:41