Re: 剛剛測到一個 bug...

看板Browsers作者時間15年前 (2009/07/21 16:24), 編輯推噓0(0012)
留言12則, 4人參與, 最新討論串2/4 (看更多)
※ 引述《Kenqr (夏天的微笑)》之銘言: : 剩1個warning無法修好 是因為iframe根本沒有onload事件可以用 : (http://www.w3.org/TR/html401/present/frames.html#edef-IFRAME) : 既然在iframe中使用onload本來就是錯誤的語法

iframe onload 非 W3C 標準我知道,但連 Joomla 官方都在用

觸發改 height 也只有 onload 比較有效率,想避也避不開.
我沒有實際測試,但這應該很容易改寫成標準的作法。 iframe 的 onload 實際上沒有意義,因為是 iframe 裏的 document 被 load, 所以當然 onload 只會寫在 body 裏。 但在原 po 的例子裏,如果事件的觸發寫在 iframe 裏的 document, 是沒辦法改到原網頁裏的物件高度。 所以正確的寫法是,在原網頁的 body 裏寫 onload, 觸發一個 javascript function, 然後 iframe 給一個 id 名稱, 在 function 裏用 document.getElementById 的方式抓到 iframe 後, 再去改 height。 目前想到的是這樣。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.193.74.131 ※ 編輯: Hemiola 來自: 123.193.74.131 (07/21 16:26) ※ 編輯: Hemiola 來自: 123.193.74.131 (07/21 16:27)

07/21 18:33, , 1F
js 抓不到 iframe,應該說它根本不會知道有 iframe 的存在
07/21 18:33, 1F

07/21 18:35, , 2F
document2 == document1.iframe.contentWindow.document
07/21 18:35, 2F

07/21 18:36, , 3F
從 documnet2 不可能抓到 document1.iframe
07/21 18:36, 3F

07/21 20:20, , 4F
可以用 parent 啊 :p 你小看它了
07/21 20:20, 4F
用 document.defaultView.parent.document.getElementById 就可以了。 實作成果在此: http://hemiolapei.free.fr/temp/test.html 不知道是不是你要的樣子。 而我發現 Kenqr 做的雖然是用 <ifram onload... 但是也有同樣的效果啊。 ※ 編輯: Hemiola 來自: 123.193.74.131 (07/21 22:33)

07/21 22:49, , 5F
上面的做法,只有 fx 和 opera 是正常的
07/21 22:49, 5F

07/22 08:28, , 6F
其實啊 我覺得改一改後 原本的兩個hr橫線 都變得只剩上橫線
07/22 08:28, 6F

07/22 11:40, , 7F
1. 很明顯 fx,op 抓到的 page height 都錯誤.
07/22 11:40, 7F

07/22 11:41, , 8F
2. WebKit 抓到正確的 height,但是只能小變大,不能大變小
07/22 11:41, 8F

07/22 11:45, , 9F
3. Kenqr 的語法就是我原本的語法,僅是補上 dtd, title
07/22 11:45, 9F

07/22 11:48, , 10F
我也很納悶為什麼加上 dtd 後,原本的 page height 就跑掉了
07/22 11:48, 10F

07/22 11:49, , 11F
是 W3C 定義的 dtd 有問題?還是 fx,op 解讀 dtd 出問題?
07/22 11:49, 11F

07/22 11:51, , 12F
我到現在還是不知道我有哪行程式是 ileadu 說的 ie only?
07/22 11:51, 12F
Firefox 和 Opera 才是對的。 因為 scrollHeight 不包含物件的 margin, 照你的程式碼,你設 iframe 的 height 等於 頁框 body 的 scrollHeight, 就會漏掉頁框 body 的 margin,所以會看不到底下那條 hr。 ※ 編輯: Hemiola 來自: 123.193.74.131 (07/22 12:10)
文章代碼(AID): #1APNjKa8 (Browsers)
文章代碼(AID): #1APNjKa8 (Browsers)