ホーム > 主要エントリー > JavascriptでCSSを切り替える

JavascriptでCSSを切り替える

公開:平成18年4月30日 17:49:52 コメントをどうぞ コメント
カテゴリー: 主要エントリー タグ: , ,
add to hatena hatena.comment (0) add to del.icio.us (0) Total: 0

会社のWebサイトに、CSSの切り替えをワンクリックで出来るようにするJavascriptを付けようと思いました。
調べてみるとstyleswitcher.jsというのが有名らしく、早速導入。

“styleswitcher.js”をダウンロードして自分のサーバーにアップロードし、ゴニョゴニョとやるだけで完了するとてもシンプルで簡単なものです。
解説はこちらのblogが良いです。

順調に進み、「さあ、動作確認だ」というときになって、アウト。
文字サイズを変更するCSSを用意していたのですが、ボタンをクリックしても文字サイズが変わりません。

おかしい・・・。
念のためにIE6とOpera 8.5で確認したところ、正常に動作するではないですか。Firefoxだけ動きません。

私のFirefoxの設定が悪いのかと思いましたが、上記の解説blogのやつを始め、他にも同じJavascriptを導入しているWebサイトでは正常に動作します。

それから数時間かけて何とかならないものかと奮闘しましたが、所詮Javascriptの知識は皆無なので原因がわかりません。

そんなとき、Mozilla系では動かないからこっちを使えみたいなblogのコメントを発見。
これだっ、と意気込んで導入してみたところ、見事に動きました。

おっしゃー! と喜んだのもつかの間、クッキーが生きていないらしく、別ページに移動するとCSSが元に戻ってしまって何の意味もありませんでした。
他のWebサイトではデフォルトのJavascriptなのにFirefoxでも動き、ちゃんとクッキーも生きているので別ページへ行っても問題ないというのに。

さらに、Mozilla系でも動くというJavascriptはSafariでは動きませんでしたorz

結局このJavascriptでの導入は断念し、他のものを探しました。
ハイパーリンク式が私の理想だったのですが、他に見あたらなかったのでプルダウン式のもので使い勝手が良さそうなものを。

CSS Selecting Scriptというやつが簡単に出来そうだったし、ここのアクセス解析を利用させていただいているのでここのを使うことに決めました。

気を取り直して早速ダウンロードし、ゴニョゴニョとやったら簡単に一丁上がり。
Firefox、Opera、IE、Safariで正常に動作することを確認。

結局これだけのために4時間くらい潰してしまいました。アホらし・・・。

2006年5月8日15:30追記

reaさんの助言により、Firefoxでも動くようになったのでメモ。

導入手順は最初に書いたとおり、配布元からダウンロードして自分のサーバーにアップロードし、解説blogにあるようにゴニョゴニョやるだけ。

しかしそれだけでは”ある条件”が重なるとFirefoxでは動作しません。
“ある条件”とは、Webページの<head></head>内のlink要素にrel属性以外のものが混じっているとダメというもの。

つまり、<link rev=”made” href=”mailto:xxx@xxx.xx” />などが混じっているとダメなのです。

このことに気づかず、何時間も費やしてしまった・・・。

1 Star2 Stars3 Stars4 Stars5 Stars (まだ評価されていません)
Loading ... Loading ...

  1. 2006 年 5 月 2 日 22:11 | #1

    こんばんは。
    自分もALAで配布されているスクリプトで試してみましたが、
    こちらではうまく動いてますよ(変更はしていません)。
    CSS studioのトップとプロフィールページで「styleswitcher.js」の設定をしていますので、一度お試しください。
    ちなみに確認ブラウザは、IE 6、Firefox 1.5、Mozilla 1.7、Netscape 7、Opera 8です(Safariは環境がないので未確認です)。
    何かあれば、メールください。
    ではでは・・・。

  2. 2006 年 5 月 3 日 10:05 | #2

    こんにちは。
    わざわざ試していただいたようでありがとうございます。
    試しにまっさらでシンプルなテストページを新調し、そこで試したところうまくいきました。
    reaさんのとこのもちゃんと動きましたよ。
    どうもJavascriptではなくて何か他の要因があるようです。
    別に変わったことはしてないんですけどねぇ・・・。

  3. 2006 年 5 月 3 日 11:24 | #3

    動いてよかったですね。
    > どうもJavascriptではなくて何か他の要因があるようです。
    link要素にrel属性以外のものはありませんか?
    たとえば、<link rev=”made” href=”mailto:xxx@xxx.xx” />とか。
    このスクリプト、rel属性以外のものは認識しないみたいで、
    それ以外の属性(rev属性)があるとFirefoxで動かないみたいです。
    参考になればいいのですが。

  4. 2006 年 5 月 3 日 12:00 | #4

    >たとえば、<link rev=”made” href=”mailto:xxx@xxx.xx” />とか。
    これだ! まさにrev属性のものが混じっています。
    今休みなので、休み明けに試してみたいと思います。
    モンモンとしていたものがようやく取れたような気がしました。ありがとうございます:D

  5. 2006 年 5 月 3 日 13:16 | #5

    お役に立てたみたいで、よかったです:-)
    ググってみたら、参考になりそうなページがあったので、
    もしよければ覗いてみてください。
    http://diary.sakura.ne.jp/?date=20040915

  6. 2006 年 5 月 5 日 11:43 | #6

    会社のWebサイトで試したところ、見事にうまくいきました。
    やはり、
    <link rev? />
    が悪さ(?)をしていたようです。
    別に必要なわけでもなかったので削除したら、きちんと動きました。
    ほんとに助かりましたm(_ _)m

  7. 2008 年 2 月 18 日 10:27 | #7

    styleswitcher.jsを用いたスタイルシート切り替えにおけるfirefoxでの不具合(?)と対策

    当サイトでも利用しているstyleswitcher.jsを使ったスタイルシート切り替え機能が正常に動作しない現象を確認したのでここに記しておきます。sty…

  8. 2008 年 6 月 8 日 22:31 | #8

    スタイルシートを切り替えるJavascript-styleswitcher.js-。

    A List Apart: Articles: Alternative Style: Working With Alternate Style Sheet…

  9. 2008 年 10 月 5 日 20:53 | #9

    styleswitcher.jsが動作しない理由

    人様の作ったテンプレートを導入して、フォントサイズ変更にstyleswitcher.jsを使おうと思ったことがありました。
    しかし、動作せ…

  1. トラックバックはまだありません。