2009-06-14

rubyを消すブックマークレット

厳密に言うと、HTML5のrtとrp要素を消すブックマークレットなのだが。ただし、IEでは動かない。というより、まともなブラウザなら動くといった方が正しいか。

hide ruby
show ruby

例:
ラオウはケンシロウの強敵ともである。奴は本気マジで強い。
事故る奴は・・・・、不運ハードラックダンスっちまったんだよ・・・・
山吹色の波紋疾走サンライトイエローオーバードライブ
Bites The Dust負けて死ね

追記:なぜかfirefoxでは、hide ruby、こっちじゃないと動かない。よく分からない。ChromeとOperaでは、ブックマークレットの中にreturn文を書けるのだが、どうもFirefoxでは動かないようだ。何故だろう。

やはり、どうもFirefoxは、bookmarklet中のreturn文が動かないらしい。理由は分からない。

そもそも、上記のコードは、関数内ではない。したがって、return文は使えないのが理由なのだろう。そこで、関数内にいれてみた。

hide ruby

これは動いた。なるほど、なるほど。上のリンクも書き換えた。しかし疑問なのは、なぜChromeとOperaでは動いたのかと言うことだ。私の予想では、この両ブラウザでは、return文を実行する直前までは、実行できていたから動いたのではないかと思う。

6 comments:

tiger said...

標準DOMスクリプティングが、おすすめかな?

hito said...

規格を直接読むのが一番手っ取り早いと思うのですが。

tiger said...

これは、失礼(^^;。その通りなのですが、ブラウザ間での互換性について、本書は、相当つっこんで解説しており、それは、規格には書かれていないです。そういう意味でおすすめなのです。

tiger said...

しかし、chromeについては、書かれていないし、こういうものは、どんどん陳腐化するので困ったもんです。Firefox だって、3.0.x近辺で、JavaScriptの挙動が変更されたりして、ひどい目にあう事もあります。

hito said...

私は理想主義者で、且つ別にWeb屋でもないので、ブラウザ間の差異など気にしません。
規格を正しく実装していないブラウザが悪いのです。
むしろ、差異ではなく、バグと呼ぶべきモノです。
あるブラウザのバグに依存したコードを書くと、後にそのバグが修正された場合、指摘通りに面倒な事になります。

tiger said...

俺も、そんな発言してみてぇorz...。