作者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)
→ TonyQ:JS 的function 模型不難懂啊...算了 開一篇文章來講好了 02/13 07:11
推 s25g5d4:我當時就在想這個問題 不過不敢提出來@@" 02/13 09:33
→ s25g5d4:那篇我也有回文耶...XD 02/13 09:34
推 s25g5d4:我在想要不要包裝一個綁定事件的function 而且有存已經綁 02/13 09:39
→ s25g5d4:上去的東西 不過要怎麼存進去取出來是個問題@@" 02/13 09:39
→ s25g5d4:addEvnetListener跟attchEvent都不能存取已經綁上的方法 02/13 09:40
→ s25g5d4:要移除有點麻煩 雖然只是多註冊一個function 而已..XD 02/13 09:41