FireFoxが劣化の一途・・・

2013/07/23 | JavaScript/Ajax

FireFoxは、「バージョンアップを加速する」みたいな発表をして、確かにその通りやっているようだが、なんだか・・・ひどい。開発してエンバグもしているように見える。

以前JavaScriptを圧縮して送る方法について記事を書いたが、その方法が使えなくなっている。.htaccessでAddEncodingの指定をしているにもかかわらず、jsonで受け取ったファイルを全く処理していない。

手元のMac環境でSafari、Chromeは動作するし、Windows環境でもIE7、8、9で動作している。動作しないのはFireFoxだけ。というか以前は確実に動作していたので(普段JavaScriptに関する開発はFireBugを使うので)、エンバグしたことに間違いないだろう。

それとも以前使っていた方法が、舌っ足らずでFireFoxはより厳密になったということだろうか。

勘弁してほしいよ。

このエラーの意味がわからなかったのねん

2012/05/29 | JavaScript/Ajax

いったいどういうエラーなんだか、まったくわからない。

TypeError: ‘undefined’ is not an object (evaluating ‘safari.self.tab.dispatchMessage’)

もちろん「’undefined’ is not an object」の意味はわかるけれど、後半の意味がわからない。そして’undefined’になっている対象がどれなのかわからない・・・。

safari-extension://be.grincheux.validator-RQZY68H5RH/b028fd54/Validator.js

コレは何。ここは何処。私は誰。そんな状態。

そして考えた。これはsafariに組み込んだ機能拡張に問題があるのではないかと(safari-extensionの部分)。そしてもういっこ。最後のValidator.jsの部分。どうもこれはsafariの機能拡張に組み込んだValidatorに問題がありそうな予感。

ということで、この機能拡張を無効にしてみた。結果としてエラーが出なくなった。疲れた。

console.logで生じるIE9の問題

2012/05/23 | JavaScript/Ajax

IEでは昔はconsole.logの機能が使えず、JavaScriptのデバッグは大変だった。しかしIE8あたりからはconsole.logも実装され、随分使い勝手がよくなったらしい(といっても最終的な確認程度にしか使わないのだけれど)。しかし、それでも問題が生じた。

グラフ描画ライブラリjqPlotはjQueryプラグインとして使うことができる高機能なグラフ描画ライブラリだ。そしてIEでも使用可能。そういう情報を得たのでとあるクライアントの案件で試用してみた。現在はMac環境で普段IEに接することがないのだが、クライアント先でデモをしていてびっくり!。IEでグラフ表示できてないじゃん!。

その場は「あー、IE対応してなかったかも・・・とりあえず他のライブラリ探してみますねー」とその場は別のブラウザで確認していただいた。解せない、どうも解せない。再度調べたがやっぱりjqPlotはIE9では動くことになっている。しかももうちょい古いバージョンでもOKとなっている。なぜだー。

気を取り直して、Windowsを起動。ひょっとしてうちのPCだと大丈夫だったりして、と思ったので試してみたけどやっぱり表示されない。ショック大。その時思ったのは「あ、ひょっとして配列の最後の要素の後ろにもカンマつけちゃっててIEでエラーになったんじゃ・・・」。で、F12でコンソールを起動してみた。そしたらびっくり。ちゃんと表示された!。

色々試してわかったことは、IEを起動して一度でもコンソールを起動すれば、以降はちゃんとグラフが表示される(仮にコンソールを閉じたとしても)。しかしIE起動後一度もコンソールを開かないままにグラフを表示させようとするとやっぱりダメ。そしてその場合は他のJavaScriptも動いていないことがわかった。

原因は、JavaScript内部でデバッグ用に残っていたconsole.log()関数だった。この関数を残しておくとIEでは基本的に(コンソールログを開かない限り)エラーになる模様。印象としては「console.logしてるのにコンソールが開いていないから詰まっちゃった」みたいな感じだろうか。何はともあれ、console.log()の部分を削除してIE9でも正常に動作することを確認できた。

ちょっと安心、ちょっとショック。納品の際はconsole.logをうっかり残してしまわないよう注意しなくては・・・。

 

window.CanvasRenderingContext2D

2012/03/04 | JavaScript/Ajax

JavaScriptで、ブラウザがcanvasを利用可能かどうかを判別する際に使用する。

window.CanvasRenderingContext2D

使えなければundefined。

window.SVGAngle

2012/03/04 | JavaScript/Ajax

JavaScriptで、ブラウザがSVGを利用可能かどうかを判別する際に使用する。

window.SVGAngle

使えなければundefined。


守谷市(まちの情報ポータル) 無料アンケートレンタルjpForm.net