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時間くらい潰してしまいました。アホらし・・・。
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
スタイルシートを切り替えるJavascript-styleswitcher.js-。
A List Apart: Articles: Alternative Style: Working With Alternate Style Sheet... [続きを読む]
Tracked on 2008年06月08日 22:31
人様の作ったテンプレートを導入して、フォントサイズ変更にstyleswitcher.jsを使おうと思ったことがありました。 しかし、動作せ... [続きを読む]
Tracked on 2008年10月05日 20:53
こんばんは。
自分もALAで配布されているスクリプトで試してみましたが、
こちらではうまく動いてますよ(変更はしていません)。
CSS studioのトップとプロフィールページで「styleswitcher.js」の設定をしていますので、一度お試しください。
ちなみに確認ブラウザは、IE 6、Firefox 1.5、Mozilla 1.7、Netscape 7、Opera 8です(Safariは環境がないので未確認です)。
何かあれば、メールください。
ではでは・・・。
2006年05月02日 22:11
動いてよかったですね。
> どうもJavascriptではなくて何か他の要因があるようです。
link要素にrel属性以外のものはありませんか?
たとえば、<link rev="made" href="mailto:xxx@xxx.xx" />とか。
このスクリプト、rel属性以外のものは認識しないみたいで、
それ以外の属性(rev属性)があるとFirefoxで動かないみたいです。
参考になればいいのですが。
2006年05月03日 11:24
お役に立てたみたいで、よかったです:-)
ググってみたら、参考になりそうなページがあったので、
もしよければ覗いてみてください。
http://diary.sakura.ne.jp/?date=20040915
2006年05月03日 13:16
メールアドレスの入力は必須となっていますが、公開されることはありません。
URLは投稿者名からリンクが張られます。
また、短すぎるコメントはスパムと判断される恐れがあるのでご注意下さい。
郷愁マキナ
styleswitcher.jsを用いたスタイルシート切り替えにおけるfirefoxでの不具合(?)と対策
当サイトでも利用しているstyleswitcher.jsを使ったスタイルシート切り替え機能が正常に動作しない現象を確認したのでここに記しておきます。sty... [続きを読む]
Tracked on 2008年02月18日 10:27