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:

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

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

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

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

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

    ReplyDelete

You can use some HTML elements, such as <b>, <i>, <a>, also, some characters need to be entity referenced such as <, > and & Your comment may need to be confirmed by blog author. Your comment will be published under GFDL 1.3 or later license with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.