ebi’s diary - Lightbox系ライブラリのまとめ - Lightbox系ライブラリのまとめ , Liteboxプラグイン導入 ebi’s diary - tdiaryへのWindows Live Writerでの投稿テスト , tdiaryへのWindows Live Writerでの画像投稿テスト , 課題。 , 叱ってもらえる.. ebi’s diary - litebox.rbが動かなかった理由と新たな問題(原因は間違いなく私) 以前からlitebox.rbプラグインがうまく動かなくて、仕方なくワークアラウンドを行っていましたが、プラグイン作者のはしもとさんが親切にも原因を調査してくださいました。はしもとさんありがとうございます!以下、その教えてもらった内容をです。
直接の原因 以下が問題が起こせる(たぶん)最小のHTMLです。記述されているjavascriptはlitebox.rbがadd_footer_procを使って出力しているものです。
1 : < h t m l > 2 : < h e a d > 3 : < s c r i p t t y p e = " t e x t / j a v a s c r i p t " s r c = " h t t p : / / e b i . d y n d n s . b i z / l i t e b o x / j s / p r o t o t y p e . l i t e . j s " > < / s c r i p t > 4 : < s c r i p t t y p e = " t e x t / j a v a s c r i p t " s r c = " h t t p : / / e b i . d y n d n s . b i z / l i t e b o x / j s / m o o . f x . j s " > < / s c r i p t > 5 : < s c r i p t t y p e = " t e x t / j a v a s c r i p t " s r c = " h t t p : / / e b i . d y n d n s . b i z / l i t e b o x / j s / l i t e b o x . j s " > < / s c r i p t > 6 : < h e a d > 7 : < b o d y > 8 : < d i v c l a s s = " c o n t e n t " > 9 : < s c r i p t t y p e = " t e x t / j a v a s c r i p t " > 1 0 : < ! - - 1 1 : ( f u n c t i o n ( ) { 1 2 : v a r a n c h o r s = d o c u m e n t . g e t E l e m e n t s B y T a g N a m e ( ' a ' ) ; 1 3 : 1 4 : f o r ( v a r i = 0 ; i < a n c h o r s . l e n g t h ; i + + ) { 1 5 : v a r a n c h o r = a n c h o r s [ i ] ; 1 6 : v a r r e l = a n c h o r . g e t A t t r i b u t e ( ' r e l ' ) ; 1 7 : v a r h r e f = a n c h o r . g e t A t t r i b u t e ( ' h r e f ' ) ; 1 8 : 1 9 : i f ( ( r e l = = n u l l r e l = = ) & & h r e f & & h r e f . m a t c h ( ( ? : j p e ? g | g i f | p n g ) $ / i ) ) { 2 0 : r e l = ' l i g h t b o x ' ; 2 1 : 2 2 : i f ( h r e f . m a t c h ( \ d { 8 } ) _ \ d + \ . \ w + $ / i ) ) { 2 3 : r e l + = ' [ ' + R e g E x p . $ 1 + ' ] ' ; 2 4 : 2 5 : v a r i m g s = a n c h o r . g e t E l e m e n t s B y T a g N a m e ( ' i m g ' ) ; 2 6 : f o r ( v a r j = 0 ; j < i m g s . l e n g t h ; + j ) { 2 7 : v a r t i t l e = i m g s [ j ] . g e t A t t r i b u t e ( ' t i t l e ' ) ; 2 8 : 2 9 : i f ( t i t l e ! = n u l l ) { 3 0 : a n c h o r . s e t A t t r i b u t e ( ' t i t l e ' , t i t l e ) ; 3 1 : b r e a k ; 3 2 : } 3 3 : } 3 4 : } 3 5 : 3 6 : a n c h o r . s e t A t t r i b u t e ( ' r e l ' , r e l ) ; 3 7 : } 3 8 : } 3 9 : } ) ( ) ; 4 0 : 4 1 : f i l e L o a d i n g I m a g e = ' h t t p : / / e b i . d y n d n s . b i z / l i t e b o x / i m a g e s / l o a d i n g . g i f ' ; 4 2 : f i l e B o t t o m N a v C l o s e I m a g e = ' h t t p : / / e b i . d y n d n s . b i z / l i t e b o x / i m a g e s / c l o s e l a b e l . g i f ' ; 4 3 : i n i t L i g h t b o x ( ) ; 4 4 : 4 5 : / s c r i p t > 4 6 : / d i v > 4 7 : / b o d y > 4 8 : / h t m l > つまり、〜というdivタグの中にlitebox.rbの吐き出すjavascriptが入っており、このようになっているとIEではエラーが発生してしまうようなのです。
...