Opera9.

この投稿は8年半前の記事です。 情報が古くなっている可能性があるので、その点ご了承ください。
2008 年 10 月 2 日 3,101日前)
1,209文字 (読了時間3分)

SPONSORED LINK

OperaとはWebブラウザの一個で、出版社でいうところの早川書房のようなイメージ(?)であります。

基本的にはWeb標準に準拠していて、FirefoxやSafariとほとんど変わり無く動いてくれる優等生ですが、それゆえにぼくは普段ブラウザチェックに使わなかったりします。まあいいだろ、という感じで。

もちろん、仕事で他人のサイトを作成するときはちゃんと見ますよ。

で、普段は完全にスルーしていたのですが、先日破滅派をいじっているときにふと「久々にOperaで確認してみるか」と起動したところ、衝撃的なことが判明。なんと……<noscript>タグの中の文字が出力されてしまっている!

最近のflashはDreamweaverの機能であるように、Javascriptで書き込むという方法が主流でしたが、その補完的な機能であるnoscriptの内容が表示されてしまっています。Opera9.25だったときは無事だったのになぜ?

色々調べたんですが、よくわからなかったので、とりあえず、<noscript>タグを非表示にすることで回避。

解決 by Mootools

CSSでnoscriptを非表示にする方法も考えたんですが、それだとJavascriptオフの人に見てもらえないと思い、
Javascript周りの問題はJavascriptで解決。

で、MootoolsをはじめとするJavascriptライブラリには、ユーザエージェントを判別する機能が備わっています。

Moootoolsの場合はBrowser.Engine.presto950というそのものずばりのオブジェクトが用意されていて、ユーザエージェントがOpera9.50だった場合にtrueを返します。

これで条件分岐させて<noscript>を非表示に。こんな感じです。

if(Browser.Engine.presto950){
   $$('header')[0].setStyle('display','none');
}

でも、なんでOperaはnoscriptを表示する仕様にしたんだろう? 理由が気になる……

追記:別にOperaのせいじゃなかった……

Operaに入っているDragonFlyというデバッグツールで検証したところ、単に自分が<noscript>に{display:block;}というスタイルを記入していただけでした。

そういえば、Javascript無効のユーザに向けて、こんなイメージを出力する予定だったんだっけ……

ようするに、Operaはスタイルシートで明示的に{display:none; }となっていない<noscript>の中身を出力してしまうんですね……。ただ、その中身はHTMLタグとして評価はされないようです。今回の発見はそれだけ。

 

フォローしてください

ここで会ったのもなにかの縁。
高橋文樹.comの最新情報を見逃さないためにもフォローをお願いします。
めったに送らないメルマガもあります。

SPONSORED LINK

この記事について

この記事はが2008 年 10 月 2 日にWeb制作, プログラミングの記事として公開しました。

高橋先生の電子書籍

高橋先生の電子書籍

Amazonで電子書籍も買えます。

好きな言葉

私にはポルノの定義はできないが、見ればわかる。

— ジャレド・ダイアモンド

高橋先生の処女作

『途中下車』高橋文樹

2001年幻冬舎NET学生文学大賞受賞作です。

Web制作やります

Web制作やります

Web制作のご依頼は株式会社破滅派へ

不定期メルマガ

高橋文樹.comでは、不定期でニュースレターを配信しています。滅多に送らないので是非購読してください。

高橋文樹.comではプライバシーポリシーに準じて登録情報を取り扱います。