r-Studio

« 銀河系衝突 | 最高気温27度 »

JavascriptでCSSを切り替える

文字サイズ変更:

文字サイズ大

文字サイズ標準

文字サイズ小

現在の文字サイズ:

文字サイズ大

文字サイズ標準

文字サイズ小

Top > Web , CSS , Javascript > JavascriptでCSSを切り替える

会社の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" />などが混じっているとダメなのです。

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

Tags : Web , CSS , Javascript
Posted by r on 2006年04月30日 17:49 edit


郷愁マキナ

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

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

Tracked on 2008年02月18日 10:27

超暫定版!エム・アールデザイン ブログ

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

A List Apart: Articles: Alternative Style: Working With Alternate Style Sheet... [続きを読む]

Tracked on 2008年06月08日 22:31

仕事にヒント

styleswitcher.jsが動作しない理由

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

Tracked on 2008年10月05日 20:53

rea さんのコメント

こんばんは。

自分もALAで配布されているスクリプトで試してみましたが、
こちらではうまく動いてますよ(変更はしていません)。

CSS studioのトップとプロフィールページで「styleswitcher.js」の設定をしていますので、一度お試しください。
ちなみに確認ブラウザは、IE 6、Firefox 1.5、Mozilla 1.7、Netscape 7、Opera 8です(Safariは環境がないので未確認です)。

何かあれば、メールください。

ではでは・・・。

2006年05月02日 22:11

r さんのコメント

こんにちは。
わざわざ試していただいたようでありがとうございます。

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

別に変わったことはしてないんですけどねぇ・・・。

[TypeKey Profile Page] 2006年05月03日 10:05

rea さんのコメント

動いてよかったですね。

> どうもJavascriptではなくて何か他の要因があるようです。
link要素にrel属性以外のものはありませんか?
たとえば、<link rev="made" href="mailto:xxx@xxx.xx" />とか。

このスクリプト、rel属性以外のものは認識しないみたいで、
それ以外の属性(rev属性)があるとFirefoxで動かないみたいです。

参考になればいいのですが。

2006年05月03日 11:24

r さんのコメント

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

[TypeKey Profile Page] 2006年05月03日 12:00

rea さんのコメント

お役に立てたみたいで、よかったです:-)

ググってみたら、参考になりそうなページがあったので、
もしよければ覗いてみてください。

http://diary.sakura.ne.jp/?date=20040915

2006年05月03日 13:16

r さんのコメント

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

[TypeKey Profile Page] 2006年05月05日 11:43

メールアドレスの入力は必須となっていますが、公開されることはありません。
URLは投稿者名からリンクが張られます。

また、短すぎるコメントはスパムと判断される恐れがあるのでご注意下さい。




Powered by Movable Type 3.35.
© 2006-2008 r-Studio. All rights reserved.